使用不同的配置重用相同的NgModule

时间:2017-11-29 23:18:09

标签: angular ng-modules

我想构建一个通用模块,我可以传递一些配置来自定义它。例如,在根模块中我希望有类似

的东西
@NgModule({
    imports: [
        moduleFactory(config1),
        moduleFactory(config2),
        moduleFactory(config3)
    ],
})
export class AppModule { }

moduleFactory将返回一个模块,其中包含将根据configx个对象构建的路由。这些模块将提供一些视图,这些视图将根据配置对象显示自定义内容。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我想出了一个使用loadChildren的解决方案。在主路线配置中我有这样的事情:

{
    path:'companies',
    loadChildren: 'app/admin/admin.module#AdminModule',
    data:{
        // the config1
    }
},

{
    path:'users',
    loadChildren: 'app/admin/admin.module#AdminModule',
    data:{
        // the config2
    }
}

然后,在AdminModule我可以阅读data属性。此外,我试图在AdminModule路由中定义绝对路径路径,但是现在,使用loadChildren解决方案,我可以定义相对路径,因此我可以静态定义路由并且AOT正常工作:) 。我在AdminModule路线中有类似的内容:

{
    path: '',
    component: TablePageComponent,
},
{
    path: 'item',
    component: FormPageComponent,
}

通过这种方式,我可以使用路由/users和具有路由/users/item;id=1的特定用户加载users表。这同样适用于公司和其他任何事情。

相关问题