Я пытаюсь l oop некоторых элементов с помощью ngFor и создать панель расширения матов для каждого элемента.
Я хотел бы заключить логические элементы c для каждого элемента в элемент компонент:
<item></item>
Начальная попытка:
<mat-accordion>
<div *ngFor="let item of items" >
<item [item]="item"></item>
</div>
</mat-accordion>
Где шаблон элемента:
<mat-expansion-panel>
<mat-expansion-panel-header>
Header Content
</mat-expansion-panel-header>
<div>
Expandable content
</div>
</mat-expansion-panel>
Проблема этого подхода заключается в том, что существует дополнительный html элемент для моего компонента между <mat-accordion>
и <mat-expansion-panel>
, который портит css для аккордеона.
Есть ли способ, которым мой компонент может обеспечить заголовок и контент?
<mat-accordion>
<div *ngFor="let item of items" >
<mat-expansion-panel>
<mat-expansion-panel-header>
<!-- put item component header here->
</mat-expansion-panel-header>
<div>
<!-- put item component content here->
</div>
</mat-expansion-panel>
</div>
</mat-accordion>
Я прочитал о ng-контенте, но я думаю, что это наоборот от того, что я хочу, я не хочу вставлять пользовательский контент в свой компонент, я хочу извлечь элементы из своего компонента и сделать так, чтобы они отображались в родитель.
Я понимаю, что мог бы создать 2 компонента, item-header и item-content. Однако я действительно хотел бы сохранить этот логин в одном компоненте.