angularJS ng-repeat="item in XXX track by $index"问题记录

参考:https://blog.csdn.net/lunhui1994_/article/details/80236315

问题:项目中对数据做了分页效果,理想是:当页数大于6时,隐藏>6的页数。点击上一页、下一页时,对应序号高亮。当前页为第6页,点击下一页时,序号始终无法高亮。

原因:ng-repeat="item in pagenum track by $index"  —— track by $index这句有问题

    由于$index会跟随item上移下移,或者随之被删除。(例如你把列表第二条和第一条位置互换,这时候列表现在第一条的index依旧为2,第二条还是原来的1)这时候你再使用‘ index依旧为2,第二条还是原来的1)这时候你再使用`index依旧为2,第二条还是原来的1)这时候你再使用‘index`传值就不在是新数组的索引了,不再匹配

    我一开始时让序号数组pagenum只取前6页,当前页为第6页,点击下一页时再加载后面的页数,重新排序了pagenum,所以出了问题。

  

解决:去掉“track by $index”或者按其他唯一标志排序即可。

猜你喜欢

转载自www.cnblogs.com/linjiangxian/p/11654750.html