是指程序运行过程当中,若是须要调用另外一个对象协助时,无须在代码中建立被调用者,而是依赖于外部的注入app
在组件中的constructor中:ide
constructor(private productService: ProductService){}
在app根组件module中或者在在组件中:code
1. providers:[productService] 等价于 第二种 2. providers: [{provider: ProductService, useClass: ProductService}] 3. priveders: [{provide: ProductService, useFactory: () => {}}]
三种声明式提供器对象
userValuetoken
1.提供器声明在模块时是对全部组件是可见的,全部组件均可以注入。
2.当一个提供器声明在组件时,只对他声明的组件和子组件可见,其余组件不可注入。
3.当声明在模块的提供器和组件的提供器具备相同的token时,声明在组件的提供器会覆盖模块的提供。
4.服务提供器优先声明在模块中,只有服务必须在某个组件可见,对其余组件不可见时才声明在组件中作用域