有没有办法通过点击按钮禁用ng-repeat?

时间:2015-04-21 21:32:56

标签: angularjs

我对一个通过列表“mylist”中的项重复的元素进行了ng-repeat。 如果mylist超过了粒子大小,有没有办法在javascript中“禁用”该元素的ng-repeat?或者,如果我单击一个按钮,列表的ng-repeat行为将被禁用或指向不同的列表,以便在用户向列表中添加50,000个项目时不会出现性能问题?

2 个答案:

答案 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(或者在用户向下滚动列表时执行此操作,通常称为“无限滚动”)。