Раньше нам приходилось включать Angular сервисов в массив providers
в определение модуля. По мере развития Angular мы теперь в основном используем свойство providedIn
в декораторе @Injectable
. Компилятор Angular делает для нас много приятных вещей, например, встряхивание дерева, поэтому мы просто создаем сервис, используем providedIn
, и нам хорошо go.
Мне любопытно, почему то же самое нельзя сделать с компонентами. В настоящее время компоненты необходимо добавить в массив declarations
в определении модуля. Последняя версия Angular способна создавать компоненты Dynami c без entryComponents
(создавать фабрику ng на лету), поэтому разве она не должна иметь возможность делать то же самое, что и для служб с providedIn
? Это означает, что вместо того, чтобы помещать компонент в массив declarations
, он будет делать то же самое, что и для служб?