0

我想构建一个通用模块,我可以通过一些配置来自定义它。例如,在根模块中,我想要类似的东西

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

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

4

1 回答 1

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,
}

有了它,我可以用 route 加载 users 表,用 route 加载/users特定用户/users/item;id=1。这同样适用于公司和其他任何事情。

于 2017-11-30T23:33:48.603 回答