当我在appmodule中导入模块并调用root时,一切都在工作,没有注入问题。 但是当我从 appmodule 中删除并添加一个调用 Root 的延迟加载模块时,无法按预期工作。 获取NullInjectorError:没有 InjectionToken forRoot(( 的提供程序,是否必须将所有模块导入到 appmodule 中。我的主要动力是减少主.js捆绑包的大小,所以不想在appmodule中加载所有模块
Appmodule => featureModule.forRoot(env( => 工作正常
LazyloadedModule => fetaureModule.forRoot(env( => Null Injector error
使用 RouterModule 的 forChild 方法而不是 forRoot 包含路由
参考 : https://angular.io/guide/lazy-loading-ngmodules
使用fetaureModule.forChild(env)
而不是fetaureModule.forRoot(env)
。
对于所有延迟加载的模块,我们应该使用forChild()
.