8

In DRF habe ich Paginierung Limit bis 100 'PAGINATE_BY': 100, hinzugefügt, da Restangular Ergebnisse in Array-Form erwartet, hatte ichWie fügt man Paginierung in Restangular und Django Rest Framework hinzu?

sieht
var app = angular.module("myapp", ["restangular"].config(function(
      RestangularProvider){ 

    RestangularProvider.setResponseExtractor(function(response, operation, what, url) { 
    if (operation === "getList") { 
     var newResponse = response.results; 
     newResponse._resultmeta = { 
      "count": response.count, 
      "next": response.next, 
      "previous": response.previous 
     }; 
     return newResponse; 
    } 

    return response; 
    }); 
}); 

und mein Controller die folgenden Meta-Extraktor Funktion in meinem Winkel App-Modul verwenden wie

app.controller('DataCtrl',function($scope, Restangular){ 

    var resource = Restangular.all('myapp/api/dataendpoint/'); 
     resource.getList().then(function(data){ 
     $scope.records = data; 
    });  
} 

Metainformationen sind im Controller nicht verfügbar. Wie kann ich paginieren, wenn mehr als 100 Datensätze verfügbar sind?

Antwort

2

Ich nehme an, Sie könnten einfach anrufen:

RestangularProvider.addResponseExtractor(function(data, operation, what, url, response) { 
    if (operation === "getList") { 
     data._resultmeta = { 
      "count": response.count, 
      "next": response.next, 
      "previous": response.previous 
     }; 
     return data; 
    } 

    return response; 
}); 

und

var page = 2; 
var resource = Restangular.all('myapp/api/dataendpoint/'); 
resource.getList({page: page}).then(function(data){ 
    console.log(data._resultmeta.next ? 'there is more pages' : 'You reach the end'); 
}); 

ich nicht gewohnt sind mit Rectangular aber Django Rest Framework support pagination from query parameter

+0

für neueste Version von restangular Verwendung addResponseInterceptor() anstelle von addResponseExtractor() – Jakobovski

Verwandte Themen