AngularJS - 有限数组的无限循环
AngularJS - Infinte Loop over a finite array
我有一个列表,其中包含 10-500 条记录,使用标准 NG-REPEAT 以图形数组的形式出现在屏幕上,可视化是一排照片
我想要实现的目标,但如果可能的话,我还是无法完全理解......
A 'window' 在屏幕上只会显示 10 条记录 - 完成
您可以向左或向右滚动浏览整个列表 - 完成
然而
我想要实现的是,当到达列表末尾时,列表会从头开始重新开始,但会以无限循环的形式出现。两个方向
我从来没有做过这样的事情,也不太确定如何实现我的 ng-repeat(ListofItems 中的项目)
所以我认为最好的解决方案是
当用户通过 100 条记录得到 40 条记录时,我将我的 $scope.ListofItems 中的前 20 条记录推入()到数组的末尾,并从前面删除等效的前 20 条记录。这保持了 100 条记录的恒定列表,没有大量内存使用..我什至可以在单个记录的基础上执行此操作..从末尾或开头删除一条记录并添加到列表的开头或结尾。
用户体验是无限滚动,但我怀疑由于正在进行的处理,浏览器体验可能会很慢且卡顿
Push()、Pull()、跟踪和索引会发挥作用,但任何建议在技术上是否可行都将不胜感激
编辑:经过一些研究。也许
$scope.ListofItems.push($scope.ListofItems.shift());
可能是一个从头到尾移动的解决方案,但不确定如何触发它或走另一条路(拉?)
EDIT2:刚刚为上面做了一个手动调用的函数,它将前面的项目移到列表的末尾,尽管我不知道如何读取屏幕位置来知道何时触发该函数
反过来可能是
$scope.ListofItems.unshift($scope.ListofItems.pop());
作为旁注,我认为重要的是要记住大型数组 shift()
和 unshift()
自然会导致完全重新索引并且时间复杂度为 O(n) 其中 n是数组的长度,与时间复杂度为 O(1)
的 push()
和 pop()
相反
我有一个列表,其中包含 10-500 条记录,使用标准 NG-REPEAT 以图形数组的形式出现在屏幕上,可视化是一排照片
我想要实现的目标,但如果可能的话,我还是无法完全理解......
A 'window' 在屏幕上只会显示 10 条记录 - 完成 您可以向左或向右滚动浏览整个列表 - 完成
然而
我想要实现的是,当到达列表末尾时,列表会从头开始重新开始,但会以无限循环的形式出现。两个方向
我从来没有做过这样的事情,也不太确定如何实现我的 ng-repeat(ListofItems 中的项目)
所以我认为最好的解决方案是
当用户通过 100 条记录得到 40 条记录时,我将我的 $scope.ListofItems 中的前 20 条记录推入()到数组的末尾,并从前面删除等效的前 20 条记录。这保持了 100 条记录的恒定列表,没有大量内存使用..我什至可以在单个记录的基础上执行此操作..从末尾或开头删除一条记录并添加到列表的开头或结尾。
用户体验是无限滚动,但我怀疑由于正在进行的处理,浏览器体验可能会很慢且卡顿
Push()、Pull()、跟踪和索引会发挥作用,但任何建议在技术上是否可行都将不胜感激
编辑:经过一些研究。也许
$scope.ListofItems.push($scope.ListofItems.shift());
可能是一个从头到尾移动的解决方案,但不确定如何触发它或走另一条路(拉?)
EDIT2:刚刚为上面做了一个手动调用的函数,它将前面的项目移到列表的末尾,尽管我不知道如何读取屏幕位置来知道何时触发该函数
反过来可能是
$scope.ListofItems.unshift($scope.ListofItems.pop());
作为旁注,我认为重要的是要记住大型数组 shift()
和 unshift()
自然会导致完全重新索引并且时间复杂度为 O(n) 其中 n是数组的长度,与时间复杂度为 O(1)
push()
和 pop()
相反