我想将模块配置从一个模块传播到另一个模块。我发现这很难详细解释,因此我将举一个例子。
我有一个类似的模块:
@NgModule({
declarations: [
ButtonComponent,
TranslatePipe,
],
imports: [
CommonModule,
],
exports: [
ButtonComponent,
],
})
export class ButtonModule {
static withConfig(config: ButtonModuleConfig): ModuleWithProviders {
return {
ngModule: ButtonModule,
providers: [
{
provide: TranslateService,
useClass: config.translateService,
},
],
};
}
}
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情是另一个模块:
@NgModule({
declarations: [
PageComponent,
],
imports: [
CommonModule,
ButtonModule, // the one defined above without overriding the TranslateService
],
exports: [
PageComponent,
],
})
export class PageModule {
static withConfig(config: PageModuleConfig): ??? {
return {
ngModule: PageModule,
imports: [
ButtonModule.withConfig({
translateService: config.translateService,
],
};
}
}
Run Code Online (Sandbox Code Playgroud)
有没有像ModuleWithProviders但更像的东西ModuleWithImports?
谢谢!
如果您使页面模块为翻译服务提供价值,它将起作用。
export class PageModule {
static withConfig(config: any): ModuleWithProviders {
return {
ngModule: PageModule,
providers: [
{
provide: TranslateService,
useValue: config.translateService
}
]
};
}
}
Run Code Online (Sandbox Code Playgroud)
这是stackblitz 应用程序示例。
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |