我使用 DI 在几个组件中注入服务。现在它不是一个常见的实例。
如何只为几个组件保留一个服务实例?
我想在app.module
providers
中加载服务
答案 0 :(得分:5)
如果您将提供商仅添加到@NgModule({providers: [MyService]})
(以及其他任何地方),那么您的MyService
中只会有一个的实例应用
仅当@NgModule()
装饰器位于非延迟加载的模块上时才会出现这种情况。可以使用forRoot导入延迟加载模块的提供程序,以确保它们也是单例。
如果您向@Component({ providers: [...]})
添加服务,则会有与此组件实例一样多的实例。