重用具有不同配置的相同 NgModule
Reusing the same NgModule with different config
我想构建一个通用模块,我可以通过一些配置来自定义它。例如,在根模块中我想有类似
的东西
@NgModule({
imports: [
moduleFactory(config1),
moduleFactory(config2),
moduleFactory(config3)
],
})
export class AppModule { }
moduleFactory
将 return 一个包含基于 configx
对象构建的路由的模块。这些模块将提供一些视图,这些视图将显示基于配置对象的自定义内容。我该怎么做?
我想出了一个使用 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
加载用户 table 并使用路由 /users/item;id=1
加载特定用户。这同样适用于公司和其他任何事物。
我想构建一个通用模块,我可以通过一些配置来自定义它。例如,在根模块中我想有类似
的东西@NgModule({
imports: [
moduleFactory(config1),
moduleFactory(config2),
moduleFactory(config3)
],
})
export class AppModule { }
moduleFactory
将 return 一个包含基于 configx
对象构建的路由的模块。这些模块将提供一些视图,这些视图将显示基于配置对象的自定义内容。我该怎么做?
我想出了一个使用 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
加载用户 table 并使用路由 /users/item;id=1
加载特定用户。这同样适用于公司和其他任何事物。