gpt4 book ai didi

javascript - 当应用多个过滤器时,AngularJS 从单个过滤器获取过滤列表计数

转载 作者:行者123 更新时间:2023-12-02 16:17:38 25 4
gpt4 key购买 nike

我刚刚开始使用 angularJS。我正在尝试使用 ng-repeat 和分页来实现项目列表。一切工作正常,除了当我过滤结果时。问题是,当页面中的结果多于适合的结果时,我不知道总共得到了多少项目,因此我无法重新生成分页数据。

为了获得过滤列表计数,我使用这个:

$scope.filterApplied = function (filteredList, query) {

$scope.filteredItems = $filter('filter')(filteredList, query);
if ($scope.filteredItems != null) {
$scope.totalItems = filteredList.length;
}
};

但如果我将每页最大项目数设置为 5,则有 10 个结果 $scope.totalItems 等于 5。

我需要以某种方式在应用 filter:query 之后但在 limitTo:(itemsPerPage*currentPage)$index >= (currentPage -1)*5.

如何实现这一目标?

我的 ng-repeat 部分如下所示:

<tr ng-repeat="person in peopleList | filter:query | orderBy:orderByField:reverseSort | limitTo:(itemsPerPage*currentPage)" ng-if="lastResult($index)">

最佳答案

您可以在 Controller 中为 limitTo 创建一个变量,并且仅在获得过滤列表的长度后才设置它:

HTML

<tr ng-repeat="person in peopleList | filter:query | orderBy:orderByField:reverseSort | limitTo:limit" ng-if="lastResult($index)">

Controller

$scope.limit = ($scope.itemsPerPage*$scope.currentPage);

$scope.filterApplied = function (filteredList, query) {

$scope.filteredItems = $filter('filter')(filteredList, query);
if ($scope.filteredItems != null) {
$scope.limit=0;
$scope.totalItems = filteredList.length;
$scope.limit = ($scope.itemsPerPage*$scope.currentPage);
}
};

关于javascript - 当应用多个过滤器时,AngularJS 从单个过滤器获取过滤列表计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com