【发布时间】: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