0

Ich versuche, eine Liste mit Seitenumbruch in angularjs zu zeigen, aber zeigen nur die erste Seite und die anderen sind leer. Kannst du mir helfen?Paginierung ng-Wiederholung nur Daten auf der ersten Seite zeigen

Dies ist mein Code:

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> 

Wenn i Schaltfläche Weiter klicken, wird die Liste in ng-repeat ist leer

+0

Oh viele Artikel haben Sie in Inventarios im ersten Aufruf? Oder besser teilen Sie den Code hinter Inventario.query(). Sie sollten vielleicht einen neuen Anruf mit Seitenparametern machen. Überprüfen Sie Ihre Leerzeichen in Ihrem Beispiel haben Sie ein Loch 'ng- click =" currentPage = currentPage + 1 ">' – Galhem

+0

InventarioResource ist ein Service, Es ist die Daten zu bekommen. Das Loch ist nur im Beispiel, in meinem Code ist es korrekt. –

Antwort

0

Ich fand die Lösung, Sie müssen zuerst "startFrom" und nach "limitTo" in der ng-Wiederholung verwenden.

Dies wäre die Lösung:

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