【发布时间】:2019-02-05 07:24:51
【问题描述】:
我有一个包含一些路由的模块:
export const routes: Routes = [
{
path: '/some-util-path',
component: SomeUtilComponent
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
RouterModule.forRoot(routes)
],
declarations: [
// --- some components ---
],
providers: [
// --- some services ---
],
exports: [
// --- some exports ---
],
})
export class MyUtilModule {
}
当我在 app.module(根模块)中导入这个模块时,它工作正常,但是当我(以及)在延迟加载的模块中导入它时,我得到了
Error: RouterModule.forRoot() called twice.
Lazy loaded modules should use RouterModule.forChild() instead.
如何配置此 Util 模块以根据其用例将路由加载为 forRoot 和 forChild?
我想我可能会将路由和“SomeUtilComponent”拆分到另一个模块,我只在 app.module 中加载,但我很想知道仅使用一个模块和条件逻辑是否可行。
我正在阅读静态 forRoot 和 forChild 方法,但我不知道如何安排导入,因为您只能指定提供程序。
【问题讨论】: