使用Angular 6,下面是创建单例服务的首选方法:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class UserService {
}
Run Code Online (Sandbox Code Playgroud)
来自Angular doc:当您在根级别提供服务时,Angular会创建一个HeroService的单个共享实例,并注入任何要求它的类.在@Injectable元数据中注册提供程序还允许Angular通过删除服务来优化应用程序(如果事实证明它不会被使用).
也,
providers: [
// no need to place any providers due to the `providedIn` flag...
]
Run Code Online (Sandbox Code Playgroud)
那么,这是否意味着我们不再需要CoreModule?我们可以将服务和其他常用模块直接导入AppModule.