Как работает Dependency Injection в Angular? Что такое провайдеры?
В Angular иерархическое дерево инжекторов: запрос зависимости поднимается от инжектора компонента к корневому. Провайдер объясняет инжектору, как создать токен — через useClass, useValue, useFactory или useExisting. Регистрация сервиса в root даёт синглтон на всё приложение; регистрация на компоненте создаёт новый экземпляр на каждый экземпляр компонента, и именно так состояние ограничивают рамками фичи.