我正在使用Angular Material中的MatTable
组件制作动态数据表。
我需要获得一行的当前位置。我可以很容易地获得用户点击的行,但我无法知道它在列表中的当前位置(这取决于排序/过滤/分页)。
有什么想法吗?
答案 0 :(得分:12)
在您的mat-cell
中,您可以获得如*ngFor
所示的索引
<mat-cell *matCellDef="let element;let i = index;">
{{ i }}
</mat-cell>
来自Angular 5的 更新也使用index as i
<ng-container matColumnDef="rowIndex">
<th mat-header-cell *matHeaderCellDef> Index </th>
<td mat-cell *matCellDef="let element;index as i;"> {{ i }} </td>
</ng-container>
index
:number:iterable中当前项的索引。 first
:boolean:当项目是可迭代中的第一项时为真。last
:boolean:当项目是iterable中的最后一项时为True。 even
:boolean:当项目在iterable中具有偶数索引时为True。 odd
:boolean:当项目在iterable中有奇数索引时为真。答案 1 :(得分:1)
您使用的是angularjs还是angular2?你的标题是angularjs,但你的标签和帖子说不然。
angular2
<div *ngFor="item of items; i = index">
<span click(item, i)>
</div>
angularjs
<div ng-repeat="item of items">
<span click(item, $index)>
</div>
编辑:我看到了你的评论,这个答案会帮助你吗? Is there an index property with CDK data table or Material2 data table?
答案 2 :(得分:1)
我进行了很多搜索,但就我的情况而言,“ indexOf”方案无法正常工作,于是我发现了这个answer,它确实满足了我的需要。
let i = index;
i + (paginator.pageIndex * paginator.pageSize);