延迟加载模块不属于路由

时间:2018-04-24 06:44:08

标签: angular lazy-loading angular5

如何加载那些在另一个组件/模块中使用的延迟加载的模块/组件?

假设有3个模块,其中login和home正在加载延迟加载。

  • AppModule(主要)
  • 的LoginModule
  • HomeModule

现在,我创建了另一个模块lib模块,它包含很少的自定义组件,如网格,按钮等。这些组件将被家庭或其他模块的组件使用,永远不会直接从任何路由使用。

这里,如果将lib模块导入到主页和其他模块中,则会在每个块文件中复制它。

有没有办法延迟加载lib模块以及没有重复代码的路由?

我还尝试将lib导入到app模块中,但它不能处理家庭模块的延迟加载,并且会出现错误,如果'grid'是Angular组件,则验证它是否是此模块的一部分。

2 个答案:

答案 0 :(得分:2)

由于这个模块不是任何路由的一部分,因此在我看来是一种共享模块。并且您的共享模块应该只在整个应用程序中导入一次。

您应该使用装饰器将核心模块导入主模块@optional和@SkiptoSelf,这将确保在整个应用程序中仅加载模块一次。

答案 1 :(得分:0)