根据一些关于如何构建 Angular 应用程序的建议,我最终得到了这个文件组织:
- app
- core
- header
- sidenav
core.module.ts
- shared
- material
custom-material.module.ts
shared.module.ts
- features
app.module.ts
- 我有一个核心模块和一个共享模块
- 核心模块 导出全局组件,例如 HeaderComponent 或 SidenavComponent
- 共享模块 导出一个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/