Angular 笔记03 依赖注入
ModuleInjector (注入器层次结构)
使用 @NgModule()
或 @Injectable()
注解在此层次结构中配置 ModuleInjector
1
ModuleInjector 由
@NgModule.providers
和NgModule.imports
属性配置。
ModuleInjector 是可以通过 NgModule.imports递归
找到的所有 providers 数组的扁平化。
子 ModuleInjector 是在延迟加载其它 @NgModules 时创建的。
2
@Injectable() 装饰器标识服务类。
该 providedIn 属性配置指定的 ModuleInjector,
这里的 root 会把让该服务在 root ModuleInjector 上可用。
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root' // <--provides this service in the root ModuleInjector
})
export class ItemService {
name = 'telephone';
}
平台注入器
在 root 之上还有两个注入器,一个是额外的 ModuleInjector,一个是 NullInjector()。