kittencup / angular2-ama-cn

angular2 随便问
692 stars 101 forks source link

最近刚学Angular2, 对共享模块的疑问 #246

Open joowoo opened 7 years ago

joowoo commented 7 years ago

做了个通用模块, 只一个模块使用它时没错, 当被多个模块使用后就提示要加到共享模块中

有点想不明白的是, 类似angular material 这些它们也是申明为共享模块了么? 去看了源码, 好像也还真是这样

奇怪为什么要用这样一个流程, 对于服务, 在根模块里申明后, 所有模块就能注入该服务了, 为甚模块要多个共享模块出来

CK110 commented 7 years ago
  1. 服务是不受angular的module影响的,一般来说是逐层向上查找。所以只要在根定义没有什么问题
  2. 但是除了服务则受angular的module影响 , 比如说你的一个moduleB 里面的组件要用到 [(ngModel)],则需要在muduleB 里面import FormsModule。 在appModule 里面的import的 FormsModule 不会作用与moduleB 里面的组件
  3. 假设有很多类似2 FormsModule 这种情况, 可以定义一个通用模块,import这些公共的module,再 exportsz 这些模块。 在你需要用的地方只要引用 通用模块了, 这样做主要是少写点,或者说更好维护