Как сохранить только один экземпляр сервиса для нескольких компонентов?
Я использую DI, чтобы ввести сервис в нескольких компонентах. Теперь это работает не как один общий случай.
Как сохранить только один экземпляр сервиса для нескольких компонентов?
Я пытаюсь загрузить службу в app.module
в разделе providers
1 ответ
Решение
Если вы добавляете провайдера только в @NgModule({providers: [MyService]})
(и нигде больше) тогда будет только один случай MyService
в вашем приложении.
Это верно только тогда, когда @NgModule()
Декоратор находится на загруженном модуле. Поставщики модулей с отложенной загрузкой могут быть импортированы с помощью forRoot, чтобы гарантировать, что они также будут одиночными.
Если вы добавляете услугу в @Component({ providers: [...]})
тогда будет столько же экземпляров, сколько экземпляров этого компонента.