问题描述
遵循关于如何构建 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子模块导出我需要的不同材料组件
- app 模块只导入核心模块(因为共享模块应该只被需要它的元素导入)
-
features/
中的模块是延迟加载的
但是现在,我的问题是:我的标题组件需要一些材料组件。
我应该将共享模块导入核心模块还是应用模块? 但这对我来说似乎是一种反模式。
1楼
matirmv
0
2019-02-21 14:26:14
您唯一需要做的就是创建一个 shared.module.ts ,您应该在其中导入您想在任何地方使用的所有材料模块(MatInputModule、MatButtonModule 等)并导出所有这些导入的模块(这使您能够将它们导入另一个模块,调用此共享模块)。
之后要做的小事,就是导入这个包含所有材料模块的共享模块,例如在您的页眉模块和页脚模块中(如果您当然需要 MatInputModule)
希望我已经清楚
祝你今天过得愉快 !
2楼
Ravi Anand
0
2020-08-05 15:18:34
导入所需的模块应该是理想的,除非您没有面临两个或多个模块之间的递归导入冲突。