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/

相关文章:

html - 无法使用 mat-tab 或 mat-ink-bar (Angular) 自定义 CSS

javascript - 尝试在 Angular 2 应用程序上输入模态时出错

mat-list 的 CSS 媒体查询

typescript - 如何在 Angular-Material 中对齐 mat-cell 中的文本

javascript - 如何使 for 循环中的事件监听器每次单击将一个元素推送到数组

java - 如何从 catalina.properties 获取值到 jsp

javascript - 由于 FIREFOX 6.0 中的 QUICK FIND 自动启动,键盘快捷键在网站上不起作用

javascript - 在 Javascript 中将输入文本大写

javascript - 为什么 *ngFor 中的 mat-checkbox 没有从模型中获取最新的 [checked] 值?

在线 Angular Material 进度微调器