极限数组,angular
Limit array, angular
正在尝试限制数组的输出。 list 是数据对象中的数组。
<tr ng-repeat="item in data.list" ng-if=""><td>{{item.data.attribute}}</td></tr>
是否可以用 ng-repeat 来做?
首先删除 ng-if
。然后使用 angular 开箱即用的 limitTo
过滤器。
ng-repeat="item in data.list | limitTo: 4 as filtered"
您也可以在控制器中使用相同的过滤器。
var limit = 5;
$scope.filteredData = $filter('limitTo')($scope.data.list)(limit);
我认为,最好的方法是使用 limitTo
<tr ng-repeat="item in data.list |limitTo:quantity"><td>{{item.data.attribute}}</td></tr>
其中 quantity
是您的限制。您也可以使用:
<tr ng-repeat="item in data.list" ng-if="$index < quantity"><td>{{item.data.attribute}}</td></tr>
但这不是最好的解决方案,因为如果它是一个大数组,这会比使用 limitToFilter 效率低,因为每个项目可能都必须被评估,另外一件事 ng-if
,在这种情况下,不会渲染 $index
大于 quantity
的转发器的 DOM element
。如果中继器中的 $index
是 0, 1, or 2 or
个,则条件为真,并创建 DOM 个节点。 ng-if
与 ng-hide
的不同之处在于元素未添加到 DOM
还有一件事,您可以在控制器中添加过滤器
.filter('limitItems', function () {/*CODE OF YOUR FILTER FUNCTION*/})
正在尝试限制数组的输出。 list 是数据对象中的数组。
<tr ng-repeat="item in data.list" ng-if=""><td>{{item.data.attribute}}</td></tr>
是否可以用 ng-repeat 来做?
首先删除 ng-if
。然后使用 angular 开箱即用的 limitTo
过滤器。
ng-repeat="item in data.list | limitTo: 4 as filtered"
您也可以在控制器中使用相同的过滤器。
var limit = 5;
$scope.filteredData = $filter('limitTo')($scope.data.list)(limit);
我认为,最好的方法是使用 limitTo
<tr ng-repeat="item in data.list |limitTo:quantity"><td>{{item.data.attribute}}</td></tr>
其中 quantity
是您的限制。您也可以使用:
<tr ng-repeat="item in data.list" ng-if="$index < quantity"><td>{{item.data.attribute}}</td></tr>
但这不是最好的解决方案,因为如果它是一个大数组,这会比使用 limitToFilter 效率低,因为每个项目可能都必须被评估,另外一件事 ng-if
,在这种情况下,不会渲染 $index
大于 quantity
的转发器的 DOM element
。如果中继器中的 $index
是 0, 1, or 2 or
个,则条件为真,并创建 DOM 个节点。 ng-if
与 ng-hide
的不同之处在于元素未添加到 DOM
还有一件事,您可以在控制器中添加过滤器
.filter('limitItems', function () {/*CODE OF YOUR FILTER FUNCTION*/})