Size: a a a

Angular - русскоговорящее сообщество

2021 March 27

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
А если в injectable директиве указать модуль, в которой сервис провайдится?
источник

B

Bretbas in Angular - русскоговорящее сообщество
Maksim
Гугл подсказывает что начиная с Angular 6 модули никогда выгружаются. То есть lazyload модули не уничтожаются. Поэтому и сервисы продолжают жить.
Полагаю проблему можно решить объявляя сервисы в providers компонента, а не модуля. Еще советуют использовать viewProviders, но я про них ничего не знаю, поэтому возможно поможет, возможно нет
У меня на несколько компонентах должен быть один инстанс этих сервисов. Все эти компоненты внутри этого lazy-loading модуле
источник

B

Bretbas in Angular - русскоговорящее сообщество
Валера Солдатов
А если в injectable директиве указать модуль, в которой сервис провайдится?
а это как оО?
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
Вместо providers в самом модуле
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
Bretbas
а это как оО?
Ну у тебя же @Injectable()
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
И там внутри provided In можно указать
источник

M

Maksim in Angular - русскоговорящее сообщество
Bretbas
У меня на несколько компонентах должен быть один инстанс этих сервисов. Все эти компоненты внутри этого lazy-loading модуле
ну обернуть эти компоненты в компонент с providers
источник

B

Bretbas in Angular - русскоговорящее сообщество
@Injectable({
   providedIn: OrganizationModule
})
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
Только ты столкнешься с циклической зависимостью, когда укажешь providedIn
источник

B

Bretbas in Angular - русскоговорящее сообщество
так чтоли?
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
Создай OrganizationServiceProviderModule
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
Укажи providedIn: OrganizationServiceProviderModule
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
И заимпорти модуль в OrganizationModule
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
Просто твой сервис сейчас скорее в двух экземплярах создается
источник

B

Bretbas in Angular - русскоговорящее сообщество
а providers: [
<тут ничего не надо уже>
]
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
Как синглтон для OrganizationModule и ещё один для остального приложения. Но это не точно
источник

M

Maksim in Angular - русскоговорящее сообщество
Валера Солдатов
И заимпорти модуль в OrganizationModule
не думаю что это решит проблему
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
Bretbas
а providers: [
<тут ничего не надо уже>
]
Да
источник

ВС

Валера Солдатов... in Angular - русскоговорящее сообщество
Maksim
не думаю что это решит проблему
Я тоже не уверен, но сейчас поэксперементировать с кодом автора и что там происходит нет возможности
источник

B

Bretbas in Angular - русскоговорящее сообщество
щас попробую
источник