нумерация страниц повторяется только на первой странице

0

Я пытаюсь показать список с разбивкой по страницам в angularjs, но показывать только первую страницу, а остальные пустые. Вы можете мне помочь?

Это мой код:

Controller.js:

angular.module('Client').controller('ListaInventarioCtrl',  function($scope, $location, $filter, InventarioResource){

    $scope.Inventarios = InventarioResource.query();  
    $scope.pageSize = 5;  
    $scope.currentPage = 0;

    $scope.getData = function () {
      return $filter('filter')($scope.Inventarios, $scope.search)
    }

    $scope.numberOfPages=function(){
        return Math.ceil($scope.getData().length/$scope.pageSize);                
    }
});

angular.module('Client')
.filter('startFrom', function() {  
    return function(input, start) {    
        start = +start;   
        return input.slice(start);    
    }   
});

listInventario.html:

<div class="input-field">
        <input placeholder="Search" type="text" ng-model="search">
</div>

<tr ng-repeat="Inventario in Inventarios | filter:search | limitTo:pageSize | startFrom:currentPage*pageSize">
        <td>{{ Inventario.id }}</td>
</tr>

<button ng-disabled="currentPage == 0" ng-click="currentPage=currentPage-1">
    Previous
  </button>
  {{currentPage+1}}/{{numberOfPages()}}
  <button ng-disabled="currentPage >= getData().length/pageSize - 1" ng- click="currentPage=currentPage+1">
    Next
 </button>

Когда я нажимаю кнопку "Далее", список в ng-repeat пуст

  • 0
    О, много ли у вас предметов в Inventarios при первом звонке? Или лучше поделиться кодом позади Inventario.query (). Возможно, вам следует сделать новый вызов с параметрами страницы. Проверьте ваши пробелы в вашем примере у вас есть дыра ng- click="currentPage=currentPage+1">
  • 0
    InventarioResource - это сервис, предназначенный для получения данных. Дыра только в примере, в моем коде это правильно.
Теги:
pagination
angularjs-ng-repeat
angular-resource

1 ответ

0

Я нашел решение, вы должны сначала использовать "startFrom" и после "limitTo" в ng-repeat.

Это было бы решением:

<tr ng-repeat="Inventario in Inventarios | filter:search | startFrom:currentPage*pageSize | limitTo:pageSize">
        <td>{{ Inventario.id }}</td>
</tr> 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню