【发布时间】:2018-06-26 18:41:53
【问题描述】:
我对 angular 还很陌生,并试图利用 mat 表的一些功能。虽然我已经完成了大部分我需要完成的工作,但当我单击一行时,我无法触发任何操作。我对此功能的测试是删除单击的行。我真正想要的是显示另一个组件,但我还没有开始这样做,所以删除提供了一个明确的信号,表明点击正在为正确的行触发。
表格如下:
<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 的缺乏经验导致我忽略了一些简单的事情。
【问题讨论】:
标签: typescript angular5