我有以下情况。
我想用静态创建方法 forRoot
ModuleA将在导入数组中使用另一个模块(ModuleB)
ModuleB还具有静态创建方法,您可以在其中将选项传递给ModuleB
ModuleA配置选项应包含在ModuleB的配置内部
在代码中,它将类似于:
@NgModule({
imports: [
ModuleB.forRoot(<the options here we need to take from ModuleA options>)
]
})
export class ModuleA {
forRoot(options): ModuleWithProviders {
return {
ngModule: ModuleA,
providers: [
{provide: SOME_TOKEN, useValue: options}
]
}
}
}
解决方案必须与AOT兼容。
如何获取传递给ModuleA的选项并使用它们来配置ModuleB?
有没有办法代替 forRoot 返回类型为 ModuleWithProviders 的对象,我可以返回具有多个模块的对象?
如果没有,推荐的方法是什么?
我也知道我只能在父级中定义ModuleB,但不愿意这样做,因为这意味着使用ModuleA的每个人都必须手动添加ModuleA正在使用的所有可配置模块的重复代码。>
谢谢