У меня есть таблица, в которой строки добавляются динамически.
У меня есть массив в файле component.ts, и я использую * ngFor для этого массива, поэтому я получаю такое же количество строк, что и элементы массива.
Эти динамически добавленные строки доступны для нажатия. Щелчок по строке будет действовать как раскрывающийся список, поэтому под ней появится другая строка, а щелчок по той же строке, что и раньше, закроет этот раскрывающийся список, он свернется.
До того, как строки таблицы были добавлены динамически , Я сделал 10 разных строк, и у меня было 10 разных переменных «свернутые (1-2-3 ....)» для каждого события щелчка. Затем сработали раскрывающиеся списки в каждой строке. После динамического добавления строк предыдущее решение явно не работает. После щелчка по одной строке все строки делают то же самое (потому что я использую одну переменную).
Можете ли вы помочь мне исправить это или подскажите, как это исправить? :)
<table class="table col-12">
<tr class="d-flex col-12 clickable" (click)="collapsed=!collapsed" *ngFor="let log of logList">
<td class="col-1">
<i class="material-icons" *ngIf="!collapsed" aria-hidden="true">
keyboard_arrow_down
</i>
<i class="material-icons" *ngIf="collapsed" aria-hidden="true">
keyboard_arrow_right
</i>
<td>
<td class="col-1">
{{log.time}}
</td>
<td class="col-3">
{{log.text}}
</td>
<td class="col-7">
<!-- JSON file displayed-->
</td>
</tr>
<tr class="d-flex col-12" *ngIf="!collapsed">
<!-- dropdown row-->
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
Щелчок по строкам также изменит значок в первом столбце.