AngularJS寻呼排序依据只影响显示的页面(AngularJS Paging orderBy o

2019-08-05 21:30发布

任何人都可以点我在正确的方向想出一个办法来解决分页方式和排序依据的角度一起工作?

目前,我可以排序依据和页面数据[]的结果,但排序依据过滤器仅分别影响到每一页。

例如,如果我在排序由ID相反的顺序,第1页将列出10-1,和第2页将列出15-11,而不是用15开始和由所述第二页的端部去1。

我这里有一个基本的小提琴http://jsfiddle.net/ZbMsR/

这里是我的控制器:

function MyCtrl($scope) {
    $scope.currentPage = 0;
    $scope.pageSize = 10;
    $scope.orderBy = "-appId";
    $scope.data = [
        {'appId': 1}, {'appId': 2}, {'appId': 3}, {'appId': 4}, {'appId': 5}, {'appId': 6}, {'appId': 7}, {'appId': 8}, {'appId': 9},{'appId': 10}, {'appId': 11}, {'appId': 12}, {'appId': 13}, {'appId': 14}, {'appId': 15}
];

    $scope.numberOfPages=function(){
        return Math.ceil($scope.data.length/$scope.pageSize);                
    };
}

//We already have a limitTo filter built-in to angular,
//let's make a startFrom filter
app.filter('startFrom', function() {
    return function(input, start) {
        start = +start; //parse to int
        return input.slice(start);
    }
});

这里是我查看相关的部分

 <strong>Sort By:</strong> <a ng-click="orderBy = 'appId'; reverse=!reverse">Newest</a>
 <ul>
    <li ng-repeat="item in data | startFrom:currentPage*pageSize | limitTo:pageSize | orderBy:orderBy:reverse">
        {{item.appId}}
    </li>
 </ul>

Answer 1:

如果你有完整的客户端分页,那么你可以改变滤镜顺序:

<li ng-repeat="item in data | orderBy:orderBy:reverse | startFrom:currentPage*pageSize | limitTo:pageSize ">

那是你的预期?



文章来源: AngularJS Paging orderBy only affects displayed page