我使用DI在几个组件中注入服务。现在它不作为一个常见实例工作。
如何为多个组件只保留一个服务实例?
我尝试在第providers
节中加载app.module
服务
如果仅将提供程序添加到@NgModule({providers: [MyService]})
(而不是其他位置(,则应用程序中将只有一个MyService
实例。
仅当@NgModule()
装饰器位于非延迟加载模块上时,才如此。可以使用 forRoot 导入延迟加载模块的提供程序,以确保它们也是单例。
如果将服务添加到@Component({ providers: [...]})
,则实例数与此组件的实例数相同。