天天看點

RouterModule.forRoot 和 RouterModule.forChild 的差別

我在做 

Angular

 開發時,遇到如下錯誤:

RouterModule.forRoot 和 RouterModule.forChild 的差別
RouterModule.forRoot 和 RouterModule.forChild 的差別

從這個StackOverflow讨論文章裡找到了原因:

該錯誤是因為 RouterModule.forChild() 生成的子產品包含必要的指令和路由,但不包含路由服務 - routing provider. 這就是 RouterModule.forRoot 的用途:它生成一個包含必要指令、路由和路由服務的子產品。

RouterModule.forRoot 和 RouterModule.forChild 的差別

解決辦法

在 app.module.ts 裡調用 RouterModule.forRoot([])

RouterModule.forRoot 和 RouterModule.forChild 的差別
RouterModule.forRoot 和 RouterModule.forChild 的差別

在 feature module 裡調用 RouterModule.forChild 傳入實際的路由數組即可:

RouterModule.forRoot 和 RouterModule.forChild 的差別
RouterModule.forRoot 和 RouterModule.forChild 的差別

繼續閱讀