0

当我在 appmodule 中导入一个模块并调用 forRoot 时,一切正常,没有注入问题。但是当我从 appmodule 中删除并添加一个调用 forRoot 的延迟加载模块时,它不能按预期工作。获取 NullInjectorError: No provider for InjectionToken forRoot(),是否必须在 appmodule 中导入所有模块。我的主要目的是减少 main.js 包的大小,所以不想在 appmodule 中加载所有模块

Appmodule => featureModule.forRoot(env) => 工作正常

LazyloadedModule => fetaureModule.forRoot(env) => Null Injector 错误

4

2 回答 2

0

使用fetaureModule.forChild(env)而不是fetaureModule.forRoot(env).

对于所有延迟加载的模块,我们应该使用forChild().

于 2020-07-05T17:29:52.763 回答
0

使用 RouterModule 的 forChild 方法而不是 forRoot 包含您的路由

参考:https ://angular.io/guide/lazy-loading-ngmodules

于 2020-07-05T16:11:39.363 回答