美文网首页
RouterModule.forRoot 和 RouterMod

RouterModule.forRoot 和 RouterMod

作者: 华山令狐冲 | 来源:发表于2021-09-08 09:26 被阅读0次

我在做 Angular 开发时,遇到如下错误:

core.js:6242 ERROR NullInjectorError: R3InjectorError(AppModule)[ChildrenOutletContexts -> ChildrenOutletContexts -> ChildrenOutletContexts]:
NullInjectorError: No provider for ChildrenOutletContexts!
at NullInjector.get (core.js:1086)
at R3Injector.get (core.js:16969)
at R3Injector.get (core.js:16969)
at R3Injector.get (core.js:16969)
at NgModuleRef$1.get (core.js:36344)
at Object.get (core.js:33987)
at getOrCreateInjectable (core.js:5849)
at Module.ɵɵdirectiveInject (core.js:21118)
at NodeInjectorFactory.RouterOutlet_Factory [as factory] (router.js:9156)
at getNodeInjectable (core.js:5994)

从这个StackOverflow讨论帖子里找到了原因:

该错误是因为 RouterModule.forChild() 生成的模块包含必要的指令和路由,但不包含路由服务 - routing provider. 这就是 RouterModule.forRoot 的用途:它生成一个包含必要指令、路由和路由服务的模块。

解决办法

在 app.module.ts 里调用 RouterModule.forRoot([])

在 feature module 里调用 RouterModule.forChild 传入实际的路由数组即可:

更多Jerry的原创文章,尽在:"汪子熙":


相关文章

网友评论

      本文标题:RouterModule.forRoot 和 RouterMod

      本文链接:https://www.haomeiwen.com/subject/mhzemltx.html