我对一个通过列表“mylist”中的项重复的元素进行了ng-repeat。 如果mylist超过了粒子大小,有没有办法在javascript中“禁用”该元素的ng-repeat?或者,如果我单击一个按钮,列表的ng-repeat行为将被禁用或指向不同的列表,以便在用户向列表中添加50,000个项目时不会出现性能问题?
答案 0 :(得分:0)
您可以使用limitTo
过滤器限制ng-repeat显示的条目。您可以在此处找到更多相关信息:https://docs.angularjs.org/api/ng/directive/ngRepeat
虽然没有迹象表明已达到限制,并且未显示所有元素。您需要自己实现。 limitTo
过滤器仅限于第一个元素,您无法获取该数组的视图子部分。
另一种选择是使用虚拟滚动指令。类似于:https://github.com/EnzeyNet/VirtualScroll
答案 1 :(得分:0)
您可以随时手动更改重复内容(例如,如果t太大则减少mylist
),或者您只需使用limitTo
来限制重复的项目数:
<div ng-repeat="item in mylist | limitTo: myLimit">
在你的控制器中:
$scope.myLimit = 50;
然后你可以添加一个按钮来“加载更多”,例如只会$scope.myLimit += 50
(或者在用户向下滚动列表时执行此操作,通常称为“无限滚动”)。