如何手动延迟加载模块?
我已经尝试加载没有使用路由器的模块SystemJsNgModuleLoader
,但无法使其工作:
this.loader.load(url).then(console.info);
我正在Cannot find module xxx
使用我用于URL的任何字符串(aboslute / relative urls / paths ...尝试了很多选项)。我浏览了一下路由器源代码,然后找不到其他任何东西SystemJsNgModuleLoader
。我甚至不确定我应该使用这个......
昨天在ng-europe 2016
会议上就提出了这个问题--Miško和Matias回答说:
MiškoHevery: 只需要掌握模块,就可以从那里获得组件工厂,您可以在应用程序中的任何位置动态加载组件工厂。这正是路由器内部所做的事情。因此,你也可以做到这一点。
MatiasNiemelä 唯一值得注意的是,在[Ng]模块上有一些被调用的东西
entryComponents
,它可以识别可以延迟加载的组件 - 这是该组件集的入口。所以当你有懒惰加载的模块时,请把东西放进去entryComponents
。
......但是,如果没有关于这个问题的例子和糟糕的文档,那就不是那么紧张的前进了;
任何人都知道如何手动加载模块,而不使用Route.loadChildren
?如何掌握模块以及应该进入的内容究竟是什么entryComponents
(我阅读常见问题解答,但不能在没有实际加载模块的情况下尝试)?
相关分类