Angular 依赖注入 - Angular 的DI

优质
小牛编辑
115浏览
2023-12-01

Angular 2的DI系统(大部分)通过来控制。 具体来说是providersdeclarations数组。 (declarations是我们放置组件,管道和指令的地方;providers 是我们提供服务的地方)

例如:

这看起来很简单,但读者会想知道Angular 2如何知道如何构建ChatWidget 。如果ChatWidget是一个字符串或一个简单的函数怎么办?

Angular 2假设它被赋予一个类。

这不是,至少还没有。 Angular 2不知道他们。 这可以很容易改变:

  1. import { Injectable, NgModule } from '@angular/core';
  2. @Component({...})
  3. constructor(private authService: AuthService, private authWidget: AuthWidget,
  4. private chatSocket: ChatSocket) {}
  5. @Component({...})
  6. class AuthWidget {}
  7. @Injectable()
  8. class AuthService {}
  9. @Injectable()
  10. class ChatSocket {}
  11. @NgModule({
  12. declarations[ ChatWidget, AuthWidget ]
  13. providers: [ AuthService, ChatSocket ],

好吧,这开始看起更完整一些了。虽然还不清楚ChatWidget如何被告知关于它的依赖。也许这与那些奇怪的语句有关。