Я не думаю, что есть чистое решение, как вы можете видеть здесь есть немного хакерского обходного пути.
Я изменил ваш стек здесь , и я думаю, что он копирует то, что вы пытаетесь сделать довольно хорошо.
В шаблоне нужно вызвать stopPropagation
по событию нажатия на ячейки:
<mat-cell *matCellDef="let element" (click)="$event.stopPropagation()">
Значок устанавливается на основе дополнительного свойства в модели данных, которую я добавил (state
):
{{element.state === 'expanded' ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}}
И то, будет ли развернута строка, также зависит от этого свойства:
<div class="mat-row detail-row" [@detailExpand]="element.state" style="overflow: hidden">