Cri*_*ano 1 angular-cli angular
我找到了一些模块的forRoot()方法的例子,如下所示:
export class CoreModule {
constructor(
@Optional()
@SkipSelf()
parentModule: CoreModule
) {
if (parentModule) {
throw new Error(
'CoreModule is already loaded. Import it in the AppModule only'
);
}
}
static forRoot(someParameters?:string[]): ModuleWithProviders {
return {
ngModule: CoreModule,
providers: [AnProvider1, AnProvider2]
};
}
Run Code Online (Sandbox Code Playgroud)
但是,如何将参数值传递给模块的任何声明的提供者?
用于使用进InjectionToken样器注册参数.然后使用InjectionToken带有deps属性的DI传递如下:
export const Params= new InjectionToken<string[]>('params');
...
static forRoot(someParameters?:string[]): ModuleWithProviders {
return {
ngModule: CoreModule,
providers: [
{ provide: Params, useValue: someParameters },
{ provide: AnProvider1, useClass: AnProvider1, deps:[Params] },
AnProvider2
]
};
Run Code Online (Sandbox Code Playgroud)
在组件构造函数中,使用InjectionToken:
constructor(@Inject(Params) someParameters: string[])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1232 次 |
| 最近记录: |