限制数组,角度

时间:2016-10-23 20:22:07

标签: javascript angularjs ng-repeat angularjs-filter

尝试限制数组的输出。 list是数据对象中的数组。

<tr ng-repeat="item in data.list" ng-if=""><td>{{item.data.attribute}}</td></tr>

是否可以使用ng-repeat?

2 个答案:

答案 0 :(得分:2)

我认为,最好的方法是使用operationId

limitTo

其中<tr ng-repeat="item in data.list |limitTo:quantity"><td>{{item.data.attribute}}</td></tr> 是您的限制。您也可以使用:

quantity

但它不是最好的解决方案,因为如果它是一个大型数组,效率低于使用limitToFilter,因为每个项目可能都需要进行评估,在这种情况下,另外一个<tr ng-repeat="item in data.list" ng-if="$index < quantity"><td>{{item.data.attribute}}</td></tr> 将不会渲染ng-if大于DOM element的转发器的$index。如果转发器中的quantity$index数量,则条件为真且创建DOM节点。 0, 1, or 2 orng-if的不同之处在于元素未添加到DOM

还有一件事,你可以在控制器中添加过滤器

ng-hide

答案 1 :(得分:1)

首先删除ng-if。然后使用开箱即用的limitTo过滤器。

ng-repeat="item in data.list | limitTo: 4 as filtered"

您也可以在控制器内部使用相同的过滤器。

var limit = 5;
$scope.filteredData = $filter('limitTo')($scope.data.list)(limit);