无处不在,建议在根AppModule提供程序数组中注册服务,并避免使用根AppComponent的提供程序数组。 什么时候应该有人在根AppComponent中注册服务?任何实际的例子。 与根AppComponent相比,在根AppModule中注册服务有什么好处?
答案 0 :(得分:5)
在根目录中注册时,提供的服务将创建为单例,与在组件中提供相反,将在创建与使用组件时一样多的实例。
换句话说:
在根级别注入的服务可在整个应用程序中访问
组件级别提供的服务仅适用于该组件及其子组件。
如果您将服务注入多个组件(@Component({ ...providers: [] ..}
),每个组件都将获得它自己的实例,并且他们的孩子将共享同一个实例。
如果您注入根级别(@NgModule({ ... providers: []}
),则所有组件将共享同一个实例。
了解更多here
答案 1 :(得分:0)
您可以在app.module或app.component中注册服务。区别在于,当您在app.module中注册服务时,可以将其作为依赖项注入到任何组件和服务中,但是在app.component中注册时,可以将其注入为依赖项,仅添加到组件。
答案 2 :(得分:-2)
您无法将服务注册到组件中。每项服务都需要注册到模块中。
@NgModule({
imports: [
CommonModule,
etc
],
declarations: [
AppComponent,
Other components and stuff related to this module
],
exports: [
What you want to export if this module is imported by another
],
providers: [
YourService
]
例如,我将所有服务保留在" CoreModule"我只是在AppRoot中导入CoreModule。
希望能帮到这个答案。