小编典典

在 Angular 6 中生成服务时,提供 Injectable 装饰器的目的是什么?

all

在 Angular CLI 中生成服务时,它会添加额外的元数据,该元数据具有“提供的”属性,默认为“根”,用于可注入装饰器。

@Injectable({
  providedIn: 'root',
})

providedIn 到底是做什么的?我假设这使该服务像整个应用程序的“全局”类型单例服务一样可用,但是,在 AppModule
的提供程序数组中声明此类服务不是更干净吗?


阅读 69

收藏
2022-06-13

共1个答案

小编典典

如果你使用providedIn,则注入被注册为模块的提供者,而不将它添加到模块的提供者中。

Docs

服务本身是 CLI 生成的一个类,并用 @Injectable 修饰。默认情况下,此装饰器配置有 providedIn
属性,该属性为服务创建提供者。在这种情况下,providedIn: ‘root’ 指定应该在根注入器中提供服务。

2022-06-13