首页 > 解决方案 > 在 Angular 8+(和 Ivy 就绪?)中以编程方式加载模块

问题描述

我的应用程序需要加载一组动态配置的功能模块(每个都有自己的附加路由),这些模块由配置文件(使用 XHR 加载)单独定义。我最初的计划是有一个模块字符串列表(如“plugins/my.module#MyModule”)并NgModuleFactoryLoader.load()在引导时用于加载它们。

现在,当我开始实施时,我看到NgModuleFactoryLoader不赞成使用 的import()形式LoadChildren,这在这种情况下不起作用(我在配置中只有字符串,没有模块引用)。

我如何在当前的(8+)Angular 中实现这一点?

标签: angularroutinglazy-loadingangular-ivy

解决方案


这是一个相当大的话题,但NgModuleFactoryLoader如果您使用的是 Ivy 编译器,它将不再适用。因为不再有模块工厂,只有模块类上的注入器定义。

有全新的 Ivy API,它的大小不适合这个答案。

正如您在评论中要求我留下答案,因此下一位研究人员会发现它更容易。这是Angular Ivy 中的异步模块和组件一文的链接。如果 Medium 链接消失,它也可以在indepth.dev上找到。


推荐阅读