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

标签 javascript angular angular-material

根据一些关于如何构建 Angular 应用程序的建议,我最终得到了这个文件组织:

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

但是现在,我的问题是:我的 header 组件需要一些 Material 组件。

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

最佳答案

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

之后要做的一件小事,就是导入这个包含所有 Material 模块的共享模块,例如在页眉模块和页脚模块中(如果您当然需要 MatInputModule)

希望我已经清楚了

祝你有美好的一天!

关于javascript - 核心模块是否应该在 Angular2 中导入共享模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54808903/

相关文章:

angular-material - Google Material 扩展面板

html - AngularJS 滚动问题

javascript - 如何将html表格单列60行动态更改为三列20行

Javascript - 将字符串作为文本/html复制到剪贴板

javascript - 在 Angular 应用程序中构建保存多个筛选器选择的值的 API 调用

angular - ngModel 无法在表单标签内工作

javascript - 单击时将表情符号添加到文本区域

javascript - 碰撞后计算 Angular 速度

css - 数据表中行之间的边距

javascript - 关闭对话框后如何更改值( Angular Material )?