如何为多个组件保留一个服务实例?

How to keep only one instance of service for several components?

我使用 DI 在几个组件中注入服务。现在它不像一个普通实例那样工作了。

如何为多个组件只保留一个服务实例?

我尝试在 app.module 部分的 providers

中加载服务

如果您将供应商添加到@NgModule({providers: [MyService]})(而不是其他任何地方),那么将只有恰好一个实例在您的申请中 MyService

仅当 @NgModule() 装饰器位于非延迟加载模块上时才适用。可以使用 forRoot 导入延迟加载模块的提供者,以确保它们也是单例。

如果您将服务添加到 @Component({ providers: [...]}),则该组件的实例数将与实例数相同。