В Angular 9 опция декоратора для инъекций providedIn имеет новое значение, называемое any. В чем разница между root и any?
providedIn
any
root
Считается ли услуга единичной в том случае, если я использую any?
@Injectable({providedIn: 'any'}) class UsefulService { }
Разница между root и any согласно официальной документации :
root: Инжектор уровня приложения в большинстве приложений.
platform: специальный инжектор синглтон-платформы, используемый всеми приложениями на странице.
platform
any: получающий инжектор NgModule разрешение.
Для получения более подробной информации, пожалуйста, обратитесь к этой статье .
Является ли услуга единственной в том случае, если я использую any ? - Нет
angular 9 вводит новую опцию для инъекционного декоратора ProvidedIn в дополнение к предыдущим root и опциям модуля, теперь у нас есть две дополнительные опции platform, any
? root - это говорит Angular о предоставлении услуги на уровне приложения root, и услуга будет создана один раз ( singleton service ) и предоставит тот же экземпляр в каждом модуле, который вводит токен. ? любой - Предоставляет уникальный экземпляр в каждом модуле (включая ленивые модули) который внедряет токен. ? platform - Указание provideIn: 'platform' делает сервис доступным в специальном инжекторе синглтон-платформы, который используется всеми приложениями на странице.
? root - это говорит Angular о предоставлении услуги на уровне приложения root, и услуга будет создана один раз ( singleton service ) и предоставит тот же экземпляр в каждом модуле, который вводит токен.
? любой - Предоставляет уникальный экземпляр в каждом модуле (включая ленивые модули) который внедряет токен.
? platform - Указание provideIn: 'platform' делает сервис доступным в специальном инжекторе синглтон-платформы, который используется всеми приложениями на странице.
подробный обзор областей Angular 's' root 'и' any 'поставщика