ino*_*nik 2 angular angular-router
我有一个ListComponent需要在 2 个模块中使用的组件,其中一个是延迟加载的。所以我创建了声明 ListComponent 的 SharedModule。ListComponent 使用该routerLink指令,因此它需要 RouterModule。所以我导入了RouterModule,导致了这个错误。
core.js:1598 错误错误:未捕获(承诺):错误:RouterModule.forRoot() 调用了两次。延迟加载的模块应该使用 RouterModule.forChild() 代替。
全局搜索显示我只打了RouterModule.forRoot一次电话。我的延迟加载模块调用RouterModule.forChild并且是唯一的其他路由模块。
我使用完全相同的设置创建了一个 stackblitz,但无法重现该问题。它确实有效。尽管如此,我还是不明白我的项目有什么不同。https://stackblitz.com/edit/angular-shared-component-b
如果您只需要导入RouterModuleinSharedModule以使用指令,例如routerLink您可以像这样简单地导入它:
// ...
@NgModule({
imports: [RouterModule], // <-- without the .forRoot call
})
export class SharedModule { }
// ...
Run Code Online (Sandbox Code Playgroud)
确保在您的应用程序的基本模块(通常AppModule,或者可能AppRoutingModule在您的情况下)中导入它,RouterModule.forRoot(yourRoutes)以便使用的链接ListComponent正常工作。
在RouterModule API 文档中查看更多信息
| 归档时间: |
|
| 查看次数: |
4487 次 |
| 最近记录: |