У меня есть рабочий пример настроенного материала аккордеонов 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
(а не просто первый или последний или любой случайный экземпляр любого другого аккордеона в этом приложении)