gpt4 book ai didi

angular - 条件导入/覆盖模块导入

转载 作者:行者123 更新时间:2023-12-04 23:42:48 27 4
gpt4 key购买 nike

我想将模块配置从一个模块传播到另一个模块。我发现这很难更详细地解释,所以我会尝试一个例子。

我有一个类似的模块:

@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,
},
],
};
}
}

我想做这样的事情是另一个模块:
@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,
],
};
}
}

有没有像 ModuleWithProviders 这样的东西但更像 ModuleWithImports ?

谢谢!

最佳答案

如果您使您的页面模块为翻译服务提供值(value),它将起作用。

export class PageModule {
static withConfig(config: any): ModuleWithProviders {
return {
ngModule: PageModule,
providers: [
{
provide: TranslateService,
useValue: config.translateService
}
]
};
}
}

这里是 sample堆栈 Blitz 应用程序。

关于angular - 条件导入/覆盖模块导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58834595/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com