Angular Material - 获取数据表中的行索引

时间:2018-05-02 20:31:32

标签: angular angular-material angular5 angular-material2

我正在使用Angular Material中的MatTable组件制作动态数据表。

我需要获得一行的当前位置。我可以很容易地获得用户点击的行,但我无法知道它在列表中的当前位置(这取决于排序/过滤/分页)。

有什么想法吗?

3 个答案:

答案 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);