Angular-可配置功能模块返回forRoot中的其他模块

时间:2018-08-10 09:30:21

标签: angular module

我有以下情况。

  1. 我想用静态创建方法 forRoot

  2. 创建一个可配置的功能模块(ModuleA)。
  3. ModuleA将在导入数组中使用另一个模块(ModuleB)

  4. ModuleB还具有静态创建方法,您可以在其中将选项传递给ModuleB

  5. 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正在使用的所有可配置模块的重复代码。

谢谢

0 个答案:

没有答案