核心模块是否应该在Angular2中导入共享模块

时间:2019-02-21 14:04:22

标签: javascript angular angular-material

遵循有关如何构建角度应用程序的几条建议,我最终得到了这个文件组织:

- app
    - core
        - header
        - sidenav
        core.module.ts
    - shared
        - material
            custom-material.module.ts
        shared.module.ts
    - features
    app.module.ts
  • 我有一个核心模块和一个共享模块
  • 核心模块导出全局组件,例如 HeaderComponent SidenavComponent
  • 共享模块导出一个 CustomMaterial 子模块(我听说这是做事的方式)
  • CustomMaterial 子模块导出我需要的不同材料组件
  • app模块仅导入核心模块(因为共享模块只能由需要它的元素导入)
  • features/中的模块是延迟加载的

但是现在,我的问题是:我的标头组件需要一些材料组件。

我应该将共享模块导入到核心模块还是应用程序模块?但这对我来说似乎是一种反模式。

2 个答案:

答案 0 :(得分:0)

唯一要做的就是创建一个shared.module.ts,在其中应导入要在任何地方使用的所有材料模块(MatInputModule,MatButtonModule等),并导出所有这些导入的模块(其中使您能够将它们导入另一个模块,调用此共享模块。

此后要做的一件小事,就是导入包含所有物料模块的共享模块,例如在标头模块和页脚模块内部(当然,如果需要MatInputModule的话)

希望我很清楚

祝你有美好的一天!

答案 1 :(得分:0)

除非不需要,否则导入理想的模块应该是理想的 面临两个或多个模块之间的递归导入冲突。