Angular Dependency Injection родительский экземпляр - PullRequest
0 голосов
/ 28 мая 2018

У меня есть рабочий пример настроенного материала аккордеонов https://stackblitz.com/edit/angular-imnpaf?file=src%2Fapp%2Faccordion-item.component.ts

Это хорошо работает.

Единственный вопрос, который у меня возникает, это когда я вводю AccordionDirective в AccordionItemComponent, как это сделать?angular знает, что, в частности, мне нужен экземпляр parent AccordionDirective, и он правильно дает мне этот экземпляр?


Upd

В CdkAccordionItem есть _expansionDispatcher , который срабатывает каждый раз, когда элемент аккордеона раскрывается, поэтому другие элементы этого аккордеона будут свернуты.И есть проверка состояния this.accordion.id === accordionId, что каждый элемент принадлежит тому же аккордеону, где произошло событие.

Я просто не могу понять, как каждый элемент получает его this.accordion?Я имею в виду, почему, если я просто импортирую класс из AccordionDirective в свой AccordionItemComponent и вставлю его - на самом деле он дает именно родительский экземпляр AccordionDirective (а не просто первый или последний или любой случайный экземпляр любого другого аккордеона в этом приложении)

...