【发布时间】:2018-11-24 10:23:08
【问题描述】:
对于 Angular 6,以下是创建单例服务的首选方式:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class UserService {
}
来自 Angular 文档: 当你在根级别提供服务时,Angular 会创建一个单一的、共享的 HeroService 实例,并注入到任何需要它的类中。在 @Injectable 元数据中注册提供程序还允许 Angular 通过删除服务来优化应用程序,如果它根本没有被使用。
还有,
providers: [
// no need to place any providers due to the `providedIn` flag...
]
那么,这是否意味着我们不再需要CoreModule?我们可以将服务和其他常用模块直接导入到 AppModule 中。
【问题讨论】:
-
看起来是的,它对我来说可能已经过时了,但是我们在哪里保留所有服务呢?在名为“coreServices”的根文件夹中:)