目前,我有一个具有分页功能的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;
};