相关疑难解决方法(0)

如何手动延迟加载模块?

我已经尝试加载没有使用路由器的模块SystemJsNgModuleLoader,但无法使其工作:

this.loader.load(url).then(console.info);
Run Code Online (Sandbox Code Playgroud)

我正在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(我阅读常见问题解答,但不能在没有实际加载模块的情况下尝试)?

angular

45
推荐指数
2
解决办法
2万
查看次数

标签 统计

angular ×1