在我在Angular 2中过滤之前,如何设置i =数组的索引?

时间:2017-04-25 23:26:56

标签: angular ngfor pipes-filters

我在Angular 2中对客户列表进行分页时遇到了麻烦。以下是我的代码片段:

<tr *ngFor="let client of eClients | filter:term | paginate: { itemsPerPage: 20, currentPage: p}; let i = index" (click)="toggleClient(i)">
   <td>
    <checkbox [(ngModel)]="eClients[i].selected">
     {{client.name}}
    <checkbox>
   </td>
</tr>

问题是索引不对应于数组中的实际位置。例如,如果我转到第2页并单击列表中的客户端#2,我应该得到22的索引,但是我得到2.当我从一个页面移动到另一个页面时,索引似乎仅从0到19。 。它首先过滤数据然后设置索引。如何在任何过滤器或分页发生之前设置“i = index”?

P.S。 “checkbox”是我自己的模块,“term”是我自己的管道过滤器。

请帮忙。谢谢

2 个答案:

答案 0 :(得分:5)

index的变量*NgFor用于当前结果。根据您的情况,您可以original index获得eClients .indexOf(client)

参考plunker

答案 1 :(得分:0)

为formArray添加fromGroupName

[formGroupName] = "getFormGroupIndex(i)"

此函数计算索引:

getFormGroupIndex(index: number): number {
   return index + (this.TableCurPage - 1) * this.ItemPerpage;}