【问题标题】:"Uncaught (in promise): Error: Cannot find module 'app/lazy/lazy.module'." when using factory to lazy load“未捕获(承诺):错误:找不到模块'app/lazy/lazy.module'。”使用工厂延迟加载时
【发布时间】:2017-10-18 20:09:50
【问题描述】:

使用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,我知道这是因为今天早些时候已成功加载。但是,重新启动后,我收到标题中的错误。

我尝试重新启动 ng serve ,但没​​有成功。为什么 Angular 在重启后仅 15 分钟就突然无法定位惰性模块,并且中间没有代码更改?

编辑:好的哇,又开始工作了,但现在有一个新问题。我放了

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

在 app.module.ts 中,它在根目录而不是在它到达工厂加载器时中断应用程序(我认为是因为我使用的是单独的 app.routing 文件并且 angular 不支持多个路由?)但是当我删除了这个惰性模块再次出现!

但是,重新启动 ng serve 会再次将其丢弃,那么我是否可以在其他地方放置提供的可与单独路由一起使用的路由?当我在 app.module 中使用 provideRoutes 进行编译时,我可以模仿正在更改的内容吗?

【问题讨论】:

    标签: angular routes lazy-loading factory


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 2019-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 2021-01-05
      • 1970-01-01
      相关资源
      最近更新 更多