1

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

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

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

4

2 回答 2

3

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

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

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

于 2019-10-01T15:29:32.293 回答
0

用 import 实现 LazyLoading 的新形式是这样的

  {
    path: '',
    loadChildren: () =>
      import('./dashboard/dashboard.module').then(
        mod => mod.DashboardModule
      )
  }

您必须使用路径导入模块文件,然后选择模块实现

于 2019-08-26T09:22:30.433 回答