我想构建一个通用模块,我可以传递一些配置来自定义它。例如,在根模块中我希望有类似
的东西@NgModule({
imports: [
moduleFactory(config1),
moduleFactory(config2),
moduleFactory(config3)
],
})
export class AppModule { }
moduleFactory
将返回一个模块,其中包含将根据configx
个对象构建的路由。这些模块将提供一些视图,这些视图将根据配置对象显示自定义内容。我怎么能这样做?
答案 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表。这同样适用于公司和其他任何事情。