такое и почему при использовании декораторов @HostListener()/@HostBinding() в случае директивы события будут навешаны на элемент, на который была применена директива, а в случае с компонентом события будут навешаны на сам компонент, что и логично.
Однако меня смущает поведение декоратора @Host() при разрешении зависимостей из DI, почему для этого случая хостом будет тот родительский шаблон, внутри которого объявлена директива на элементе или объявлен сам компонент?
Ощущение, что хост это что-то не однозначное и зависит от случая, так ли это?
хост это элемент дом, на котором висит директива. и компонент это тоже директива
Хост не обязательно является дом элементом
я в курсе, что компонент тоже директива, разница лишь в том, что директиву мы вешаем на элемент, а сам компонент(директива с шаблоном) сам по себе элемент в шаблоне.
нет, компонент мы тоже вешаем на элемент
а на что еще можно повесить байндинг и листенер?
Имеется в виду, что селектор компонента под капотом условный "div"?
нет такой вещи, селектор компонента. Есть просто селектор. Компонент можно повесить и на [attrname], на селектор с аттрибутом
Ладно, с этим понятно, суть вопроса была не в этом. Вопрос заключался в понятии хост в ангуляре.
Я имею в виду, что в разных местах ангуляр использует термин Host... будь то биндинг, листинер или хост в разрешении зависимостей DI, и вопрос в том, понимается ли под хостом что-то конкретное или это просто наименования, которые между собой ничего общего не имеют?
host — двольно распространенное слово как сервис или элемент
род. компонент или же шаблон род. компонента с его viewProviders?
а в чем разница?
ну, если данные будут в providers: [] род компонента, то @Host() не достанет их https://stackblitz.com/edit/stackblitz-starters-8epuvb?file=src%2Fdirectives%2Fhost.directive.ts
https://angular.io/guide/hierarchical-dependency-injection тут демка хорошая
Обсуждают сегодня