ещё у него есть сервис SpinnerService, который я инжекчу куда угодно и откуда угодно контролирую поведение любого спиннера — у сервиса прописан providedIn: 'root' — так вот мне этот сервис можно прописать в самом модуле SpinnerModule в providers и сервис пропишется в root-модуле и нормально будет синглтоном всегда, куда бы я потом не вставил SpinnerModule, или мне этот сервис отдельно прописать в App-модуле?
не providedIn, не providers не гарантируют что сервис будет синглтоном для начала а так я бы оставил в модуле SpinnerModule
эммм... ну как, если я пропишу его в providers в SpinnerModule, то сервис всегда будет создаваться заново, а мне нужно, чтобы он был синглтоном... для этого обычно прописывают providedIn: root...
ну возьмут и запровайдят в другом месте и не будет он синглтоном больше
нет-нет, никто не будет отдельно брать SpinnerService и где-то его провайдить, будут брать модуль SpinnerModule и прописывать его в imports-массиве
ну если только честно-честно, то ладно)
Почему при записи в SpinnerModule вы будете получать новый экземпляр? Eager модуль будет предоставлять сервис как синглтон
ну так в том и вопрос — если я пропишу SpinnerService в модуле SpinnerModule и теперь этот SpinnerModule буду использовать в разных местах, т.е. в других модулях компонентов, то будет ли SpinnerService постоянно создаваться заново или он уже будет синглтоном, т.к. я в сервисе прописал ему providedIn: 'root'?
или же мне в SpinnerModule в providers вообще не прописывать SpinnerService, а прописать сервис вообще в AppModule?
если providedIn: 'root' то не будет пересоздаваться, если в провайдерс то будет пересоздаваться в лейзи модулях
вооо, и лейзи-мудули тоже есть, полный варш ))) сейчас буду пробовать колдовать
вот начальный вопрос
создал лейзи и не лейзи. сервис в рут. инстанс один. нахрена shared.module?
да никто не создает модуль под сервисы. бред
Если сервис используется только в lazy модулях, и ограничить видимость сервисов через lazySharedModule, почему нет?
ну это же не тот случай. рутовые модули инжектятся как есть. их не надо нигде провайдить
честно признаться, не видел чтобы сервисы складировали в шаред модуль и для лейзи. да, это не ограничивает видимость, но по ошибке из лейзи можно заимпортировать много чего
Ну просто есть парка Shared, там куча всяких компонентов с сервисами, ну вот там и логично создать файлик и туда поместить все сервисы
Ну ок, можно прямо в App-модуль все эти сервисы напрямую прописать
нахрена? они и так провайдедин рут
зачем всё забивать в апп модуль. А не лучше ли сервисы провайдить только там, где они действительно нужны?
это будет не синглтон
а ему надо сингл
Обсуждают сегодня