Я новичок в angular и пытаюсь использовать некоторые функции матовых таблиц. Хотя у меня большая часть того, что мне нужно, сделано, я не могу запустить какое-либо действие, когда я щелкаю строку. Мой тест для этой функциональности - удалить строку, по которой щелкнули. Что я действительно хочу, так это отобразить другой компонент, но я еще не начал с этого, поэтому удаление дает четкий сигнал о том, что щелчок срабатывает для правой строки.
Таблица выглядит следующим образом:
<mat-table #table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="title">
<mat-header-cell *matHeaderCellDef mat-sort-header> Part Name</mat-header-cell>
<mat-cell *matCellDef="let part"> {{ part.title }}</mat-cell>
</ng-container>
<ng-container matColumnDef="partNumber">
<mat-header-cell *matHeaderCellDef mat-sort-header> Part Number</mat-header-cell>
<mat-cell *matCellDef="let part"> {{ part.partNumber }}</mat-cell>
</ng-container>
<ng-container matColumnDef="description">
<mat-header-cell *matHeaderCellDef mat-sort-header> Description</mat-header-cell>
<mat-cell *matCellDef="let part"> {{ part.description }}</mat-cell>
</ng-container>
<ng-container matColumnDef="leadTime">
<mat-header-cell *matHeaderCellDef mat-sort-header> Lead Time</mat-header-cell>
<mat-cell *matCellDef="let part"> {{ part.leadTime }}</mat-cell>
</ng-container>
<ng-container matColumnDef="weight">
<mat-header-cell *matHeaderCellDef mat-sort-header> Weight</mat-header-cell>
<mat-cell *matCellDef="let part"> {{ part.weight }}</mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;" click="displayDetail(row._id)"></mat-row>
</mat-table>
Что запускает следующее событие в моем файле компонента:
partList: Array<Part> = new Array<Part>();
dataSource = new MatTableDataSource(this.partList);
displayDetail(i) {
this.partList.splice(i, 1);
}
Я возился со многими частями и сделал почти все, что мог придумать, но я чувствую, что моя неопытность с angular заставляет меня упускать из виду что-то простое.