AngularJS重复分页,过滤和排序

时间:2018-10-03 11:42:17

标签: angularjs angularjs-ng-repeat

目前,我有一个具有分页功能的ng-repeat,还有一个过滤器。这样一来,我就可以搜索所有项目,甚至可以搜索所选页面上不可见的项目。

但是我想在此表上有一个动态orderBy并包含数据。因此,当我想在value上进行排序时,即使该行不在我当前访问的另一页上,也必须显示最高价格(或最低价格,如果是“反向”)。

我当前的代码将对某些内容进行排序,但不是对所有项目进行排序,因此我看不到这种排序的逻辑位置。

ng-repeat的外观如下:

<input class="form-control" type='text' ng-model='searchquery' placeholder='{{:: "SEARCH" | translate}}' />
<table>
   <tr>
     <td ng-click="sortBy('id')">ID</td>
     <td ng-click="sortBy('username')">Username</td>
     <td ng-click="sortBy('email')">E-mail</td>
     <td ng-click="sortBy('value')">Value</td>
    </tr>
   <tr ng-repeat="customer in filterData = (marketingCustomers | filter: searchquery | orderBy:sortColumn:reverse) | limitTo: pageSize:pageSize*(currentPage-1)">
       <td>{{customer.id}}</td>
       <td>{{customer.username}}</td>
       <td>{{customer.email}}</td>
       <td>{{customer.value}}</td>
   </tr>
</table>

<select ng-model="pageSize">
   <option value="10">10</option>
   <option value="25">25</option>
   <option value="50">50</option>
   <option value="100">100</option>
</select>


<ul uib-pagination items-per-page="pageSize" max-size="10" total-items="filterData.length" ng-model="currentPage"></ul>

将此作为“ sortBy”功能

$scope.sortBy = function (sort) {
    $scope.reverse = ($scope.sortColumn === sort) ? !$scope.reverse : false;
    $scope.sortColumn = sort;
};

0 个答案:

没有答案