AngularJS - 有限阵列上的Infinte循环

时间:2018-04-18 21:13:48

标签: arrays angularjs angularjs-ng-repeat

我有一个列表,显示屏幕上出现的10-500条记录,使用标准NG-REPEAT作为图形数组,可视化是一排照片

我想要实现的目标,但如果可能的话,我就无法理解......

屏幕上的“窗口”仅显示10条记录 - 完成 您可以在整个列表中向左或向右滚动 - 完成

无论其

我想要实现的是,当到达列表的末尾时,列表从头开始,但是在无限样式循环中。两个方向

我从来没有做过这样的事情,也不太确定如何实现我的ng-repeat(ListofItems中的项目)

所以我认为最好的解决方案是

当用户通过100条记录获得40条记录时,我将$ scope.ListofItems中的前20条记录推送到数组的末尾,并从前面删除等效的前20条记录...这样可以保持不变100条记录的列表,没有大量的内存使用..我甚至可以在个人记录的基础上执行此操作..从结束或开始删除一条记录,并在列表的开头或结尾添加。

用户体验是一个无限滚动,但我怀疑由于处理正在进行,浏览器体验会变得缓慢和干扰

推(),拉(),跟踪和索引将发挥作用,但任何建议将被欣赏,这是否在技术上是可能的

编辑:经过一番研究。也许

$scope.ListofItems.push($scope.ListofItems.shift());

可能是一个从头到尾移动的解决方案,但不知道如何触发这个或走另一条路(拉?)

EDIT2:刚刚为上面做了一个手动调用的函数,它将前面的项目转移到列表的末尾,虽然我不知道如何读取屏幕位置知道何时触发该函数

1 个答案:

答案 0 :(得分:1)

反过来可能是

$scope.ListofItems.unshift($scope.ListofItems.pop());

作为旁注,我认为对于shift()unshift()自然导致完全重建索​​引并且时间复杂度为O(n)的大型数组而言,请务必记住这一点非常重要。其中n是数组的长度,而push()pop()的时间复杂度为O(1)