"未捕获(承诺):错误:无法找到模块' app / lazy / lazy.module'。"使用工厂延迟加载时

时间:2017-10-18 20:09:51

标签: angular routes lazy-loading factory

使用this answer中的概念我有像这样的

动态角度模块加载
this.loader.load('app/lazy/lazy.module#LazyModule').then((moduleFactory: NgModuleFactory<any>) => {
          const entryComponent = (<any>moduleFactory.moduleType).entry;
          const moduleRef = moduleFactory.create(this.inj);

          const compFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(entryComponent);
          this.container.createComponent(compFactory);
        });

我没有使用loadChildren,我已经设置了ViewChild,SystemJsNgModuleLoader和NgModuleFactory,因为今天早些时候已经成功加载了。重启后,我在标题中收到错误。

我尝试过没有运气重启服务。为什么角度突然无法在重启后突然无法找到懒惰的模块,只需15分钟且两者之间没有代码更改?

编辑:好的哇,让它重新工作但现在有了一个新问题。我把

providers: [
        SystemJsNgModuleLoader,
        provideRoutes([
         { loadChildren: 'app/lazy/lazy.module#LazyModule' }
      ])
]
app.module.ts中的

,它会在根目录中打破应用程序,而不是在它到达工厂加载程序时(我认为因为我使用的是单独的app.routing文件而且角度不会感谢多条路线?)但是然后,当我删除它时,懒人模块再次出现!

重新启动ng服务然后再次丢弃它,所以在其他地方我可以提供将使用单独路由的提供路由吗?当我在app.module中使用provideRoutes进行编译时,我可以猿掉任何被更改的内容吗?

1 个答案:

答案 0 :(得分:0)

想出了解决方案,只是添加了一条未使用的路由到根路由器。

{
  path: 'discovery/lazy',
  loadChildren: 'app/lazy-module/lazy.module#LazyModule'
}