在最新版本的 Angular 6 中,使用服务元数据中的 providedIn
属性在模块中注册服务:
@Injectable({
providedIn: 'root',
})
export class HeroService {}
然而,文档仍然提到在模块元数据中的模块 providers
数组中注册服务,就像我们在 Angular 5 中所做的那样:
@NgModule({
providers: [HeroService],
})
export class AppModule {}
所以,
- 应该使用哪种方法让注入器知道它应该注入的服务?
- 模块
providers
数组方法是否会被弃用?
原文由 Hamed Baatour 发布,翻译遵循 CC BY-SA 4.0 许可协议
基本上你可以使用任何一种,但根据新的 CLI
provideIn
将在创建时自动添加service
#providedIn
有关更多信息,请参阅此处