【发布时间】:2020-09-10 16:41:29
【问题描述】:
我正在学习 Angular 中的 Injectables 和 Services,但我不清楚有关 injectables 的某些导入和默认特性。具体来说,什么时候应该在 Angular 中提供服务:
-
有@Injectables 标签吗?我看过一篇不使用它的博文。当您将其省略时会发生什么?如果不使用此标记会如何改变服务的行为方式?
-
在 app.module 的 providers 数组中声明?
-
在单个组件的 providers 数组中声明,而不是在 app.module 中?
-
使用@Injectables 标签时providedIn 关键字的默认值是多少?如果您的服务中未定义此关键字,那么该关键字的值和服务的范围应该如何假设?
-
假设我有一个具有以下特征的服务(我们称之为
DummyService):具有@Injectables 标记,未定义providedIn,未在任何提供程序数组中声明(既不是app.module,也不是任何单个组件)。- 5.a) 由于没有指定providedIn 并且没有在任何providers 数组中声明该服务,该服务是否可以与兄弟组件共享?
- 5.b) 从导入 DummyService 的组件调用 DummyService 时,与这些用例有什么区别:
DummyService.addToList("Stacy");
对
constructor(private _dummyservice: DummyService){}
ngOnInit(){
this.dummyservice.addToList("Stacy");
}
【问题讨论】:
标签: angular angular-services injectable