在根 AppModule 或根 AppComponent 中注册服务
Register service in root AppModule or root AppComponent
在任何地方,建议在根 AppModule providers 数组中注册服务,避免使用根 AppComponent 的 providers 数组。
什么时候应该在根 AppComponent 中注册服务?任何实际例子。
与根AppComponent相比,在根AppModule中注册服务有什么优势?
在根目录注册时,所提供的服务被创建为单例,与在组件中提供相反,它会在您使用组件时创建尽可能多的实例。
换句话说:
在根级别注入的服务将在整个应用程序中访问。
在组件级别提供的服务将仅在该组件及其子组件上可用。
如果您在多个组件 (@Component({ ...providers: [] ..}
) 中注入服务,每个组件都会获得自己的实例,它们的子组件将共享同一个实例。
如果您在根级别 (@NgModule({ ... providers: []}
) 中注入,所有组件将共享同一个实例。
阅读更多here
您不能将服务注册到组件中。每个服务都需要注册到一个模块中。
@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。
希望对这个答案有所帮助。
您可以在 app.module 或 app.component 中注册服务。不同之处在于,当您在 app.module 中注册服务时,它可以 作为任何组件和服务的依赖项注入 但在 app.component 中注册它可以 仅作为组件的依赖注入。
在任何地方,建议在根 AppModule providers 数组中注册服务,避免使用根 AppComponent 的 providers 数组。 什么时候应该在根 AppComponent 中注册服务?任何实际例子。 与根AppComponent相比,在根AppModule中注册服务有什么优势?
在根目录注册时,所提供的服务被创建为单例,与在组件中提供相反,它会在您使用组件时创建尽可能多的实例。
换句话说:
在根级别注入的服务将在整个应用程序中访问。
在组件级别提供的服务将仅在该组件及其子组件上可用。
如果您在多个组件 (@Component({ ...providers: [] ..}
) 中注入服务,每个组件都会获得自己的实例,它们的子组件将共享同一个实例。
如果您在根级别 (@NgModule({ ... providers: []}
) 中注入,所有组件将共享同一个实例。
阅读更多here
您不能将服务注册到组件中。每个服务都需要注册到一个模块中。
@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。
希望对这个答案有所帮助。
您可以在 app.module 或 app.component 中注册服务。不同之处在于,当您在 app.module 中注册服务时,它可以 作为任何组件和服务的依赖项注入 但在 app.component 中注册它可以 仅作为组件的依赖注入。