我在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”是我自己的管道过滤器。
请帮忙。谢谢
答案 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;}