Ответ 1
В вашем примере нет разницы между поставщиками и viewProviders, потому что шаблон HelloWorld не использует <ng-content>
. Если вы проецировали содержимое в <ng-content>...</ng-content>
, тогда Greeting не мог быть введен в проецируемый контент, потому что вы используете
viewProviders: [Greeter]
Если вы хотите, чтобы Greeter мог быть добавлен в проецируемый контент, вы должны использовать
providers: [Greeter]
Итак, viewProviders
ограничивает поставщика дочерними элементами, отличными от проецируемого контента, а providers
позволяет всем детям использовать поставщика. Значением является то, что viewProviders
позволяет предотвратить проецирование проецируемого контента на ваши сервисы, что может быть особенно полезно в библиотеках.