Я создаю таблицу материалов в качестве дочернего компонента, который генерирует таблицу динамически, используя данные, предоставленные родительским компонентом.
В таблице также есть столбец для таких действий, как редактирование и удаление. Это делает мою таблицу смесью динамического и статического столбца. Я могу получить индекс строки динамических столбцов, но индекс статического столбца возвращает неопределенное значение.
Я попытался получить индекс динамического столбца следующим образом:
<div *ngFor="let column of columns">
<ng-container *ngIf="displayedColumn !='actions'" [matColumnDef]="column.columnDef">
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.header }}</th>
<td mat-cell *matCellDef="let row; let i=index;">{{ column.cell(row) }}</td>
</ng-container>
</div>
Это дает правильный индекс, ноЯ не могу получить доступ к этому «i» в статическом столбце «Actions», чтобы передать его в deleteMember ().
<table mat-table [dataSource]="dataSource" matSort>
<div *ngFor="let column of columns">
<ng-container *ngIf="displayedColumn !='actions'" [matColumnDef]="column.columnDef">
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.header }}</th>
<td mat-cell *matCellDef="let row">{{ column.cell(row) }}</td>
</ng-container>
</div>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef>Actions </th>
<!--tried with puttin index like below also, it gives same result-->
<!--<td mat-cell *matCellDef="let row; let index=index">-->
<td mat-cell *matCellDef="let row">
<button mat-icon-button class="iconbutton" color="primary">
<mat-icon>edit</mat-icon>
</button>
<!--row.id is the id of the employee and index is the index of row which is undefined-->
<button mat-icon-button (click)="deleteMember(row.id, index)" matTooltip="Delete" class="iconbutton" color="warn">
<mat-icon>delete</mat-icon>
</button>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns; let index=index;"></tr>
</table>
Мне нужно передать индекс строки в deleteMember (), чтобы удалить эту строку после успешного завершенияудалить на сервере.