Angular4 依赖注入

什么是依赖注入

是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入

angular中依赖注入的具体使用

注入器:

在组件中的constructor中:

constructor(private productService: ProductService){}

提供器:

在app根组件module中或者在在组件中:

1. providers:[productService]  等价于 第二种
2. providers: [{provider: ProductService, useClass: ProductService}] 
3. priveders: [{provide: ProductService, useFactory: () => {}}]

三种声明式提供器

  1. userClass
  2. userFactory
  3. userValue

注入器中指定的productService类型是providers中的provider,而provider使用的class是productService,所以注入器中productService的类型就是ProductService。

提供器作用域规则

1.提供器声明在模块时是对所有组件是可见的,所有组件都可以注入。
2.当一个提供器声明在组件时,只对他声明的组件和子组件可见,其他组件不可注入。
3.当声明在模块的提供器和组件的提供器具有相同的token时,声明在组件的提供器会覆盖模块的提供。
4.服务提供器优先声明在模块中,只有服务必须在某个组件可见,对其他组件不可见时才声明在组件中


navk
129 声望7 粉丝