В настоящее время у меня есть рабочий нг-повтор с нумерацией страниц и фильтр.Который позволяет мне искать во всех элементах, даже элементах, которые не видны на выбранной странице.
Но я хочу иметь динамическую 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;
};