【发布时间】:2019-07-28 02:37:12
【问题描述】:
在使用 RouterModule 时,我对 forRoot 子和 forChild 行为有点困惑。
如果我在路由模块中使用 RouterModule.forChild(routes),并在 app.module.ts 中导入相同的内容,然后如果我尝试使用 router-outlet 在 app.component.ts 中,它会抛出错误。
根据定义:
forChild 创建一个包含所有指令和给定路由的模块,但不包括路由器服务。
路由器服务用于浏览器位置检测,但为什么它无法找到 router-outlet 指令,因为定义清楚地说明它将包含所有指令。
但是如果在一个特性模块中做同样的事情,它就可以正常工作。
很抱歉没有发布代码,因为它会很长。
【问题讨论】:
-
您是否只导入 RouterModule.forChild(routes) 而不是 forRoot()? Angular 遇到的错误是什么?
-
没有 ChildrenOutletContexts 的提供者!,我只是想深入了解一下,所以我尝试做 RouterModule.forChild(routes),通常在主模块中你应该做 RouterModule.forRoot。