【发布时间】:2018-11-29 21:20:27
【问题描述】:
我有一个组件ListComponent 需要在 2 个模块中使用,其中一个是延迟加载的。所以我创建了声明 ListComponent 的 SharedModule。 ListComponent 使用routerLink 指令,因此它需要RouterModule。于是我导入了RouterModule,导致了这个错误。
core.js:1598 ERROR 错误:未捕获(承诺):错误: RouterModule.forRoot() 调用了两次。延迟加载的模块应该使用 RouterModule.forChild() 代替。
全局搜索显示我只调用了一次RouterModule.forRoot。我的延迟加载模块调用 RouterModule.forChild 并且是唯一的其他路由模块。
我使用完全相同的设置创建了一个 stackblitz,但无法重现该问题。它确实有效。尽管如此,我还是无法弄清楚我的项目有什么不同。 https://stackblitz.com/edit/angular-shared-component-b
【问题讨论】:
-
问题是我不小心将根
AppModule导入到我的延迟加载模块中。