AngularJS ng-repeat: orderBy не реагирует на лимит на изменения, работает только со старыми данными - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть ng-повтор с первыми 20 элементами через limitTo и его динамику - я нажимаю «читать дальше» +20 становится видимым.

Проблема: у меня есть orderBy, а после «read more» он делает заказтолько для старых данных ...

Как это исправить?

- контроллер -

$scope.items = [{"id":38,"updated_at":"02.05.2016"}, ... ];

$scope.showMore = function(){
    $scope.form.page_size += 20;
};

$scope.sortBy = function (propertyName) {
    $scope.propertyName = propertyName;
    $scope.reverse = (propertyName !== null && $scope.propertyName === propertyName) ? !$scope.reverse : false;
};

- html -

<table>
      <thead>
          <tr>
              <th ng-click="sortBy('updated_at')">Updated</th>
          </tr>
      </thead>
      <tbody>
          <tr ng-repeat="(index, entry) in items | limitTo:form.page_size | orderBy:propertyName:reverse track by entry.id">
               ...
          </tr>
      </tbody>
</table>

<button type="button" ng-click="showMore()">Show More</button>

1 Ответ

0 голосов
/ 05 февраля 2019

Наконец, введите limitTo в выражении ng-repeat, как показано ниже:

<tr ng-repeat="(index, entry) in items | orderBy:propertyName:reverse track by entry.id 
    | limitTo:form.page_size">
  ...
</tr>
...