AngularJS повторить с нумерацией страниц, фильтром и порядком - PullRequest
0 голосов
/ 03 октября 2018

В настоящее время у меня есть рабочий нг-повтор с нумерацией страниц и фильтр.Который позволяет мне искать во всех элементах, даже элементах, которые не видны на выбранной странице.

Но я хочу иметь динамическую 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;
};
...