我对 forroot child and forchild 行为有点混淆,在使用routermodule时。
如果我在路由模块内使用routermodule.forchild(路由),然后在 app.module.ts 中导入相同>内部 app.component.ts ,它会引发错误。
根据定义:
forChild
创建一个包含所有指令和给定路线的模块,但不包括路由器服务。
路由器服务适用于浏览器位置检测,但是为什么它无法找到路由器输出指令,因为定义清楚地说它将包含所有指令。
但是,如果在功能模块中完成了同样的事情,则可以正常工作。
很抱歉不发布代码,因为它会很长。
RouterModule.forRoot()
需要在AppModule
中存在。它是实例化路由器服务的一种。所有其他模块都将使用RouterModule.forChild([])
来处理路由。
您应该在应用程序中只有一个forRoot
使用。
检查路由器源代码。
forChild
登记路线,而 forRoot
登记路由和配置/初始化路由器本身