Вот как выглядит дерево внедрения зависимостей при использовании viewProvider.
Насколько я понимаю: если у меня SimpleService
в поставщикахв ngModule и в то же время SimpleService
в viewProviders
в ParentComponent
:
Когда представление дочернего компонента (которое было введено через ng-content
) запрашивает зависимость, оно переходит непосредственно к *Поставщики 1015 * вместо родителей.
Следовательно, все родительские компоненты (и их представления, которые не были введены ng-content
) будут иметь отдельный новый экземпляр SimpleService
для себя, но представления, которые были внедрены через ng-content
, будут иметь синглтонсреди них есть общий экземпляр, предоставленный NgModule
.
Для всех Компонентов (Родительский Компонент), которые имеют SimpleService
в своих viewProviders
, они и их Представления (не внедряемые через ng-контент) будут иметь отдельный экземпляр SimpleService.
ParentComponent1-->SimpleServiceInstance1
ParentComponent1's View-->SimpleServiceInstance1
ParentComponent2-->SimpleServiceInstance2
ParentComponent2's View-->SimpleServiceInstance2
ParentComponent3-->SimpleServiceInstance3
ParentComponent3's View(injected via ng-content) -->SimpleServiceInstanceFromNgModuleWhichIsSingleton
ParentComponent4-->SimpleServiceInstance4
ParentComponent4's View(injected via ng-content) -->SimpleServiceInstanceFromNgModuleWhichIsSingleton
Правильно ли мое понимание?Если да, то в каком реальном сценарии вы бы использовали viewProvider?Мне нужен реальный пример.