8

W DRF Dodałem limitu paginacji 100 'PAGINATE_BY': 100, od Restangular oczekuje rezultatów w postaci tablicy, musiałem użyć poniżej meta funkcji wyciągowym w moim kątowej aplikacji modułuJak dodać paginację w ramach Restangular i Django Rest Framework?

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; 
    }); 
}); 

i mój kontroler wygląda

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

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

Meta informacje nie są dostępne w kontrolerze, w jaki sposób mogę dokonać paginacji, jeśli dostępnych jest ponad 100 rekordów?

Odpowiedz

2

Przypuszczam, że można po prostu zadzwonić:

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; 
}); 

i

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'); 
}); 

Nie jestem zwykle z Rectangular ale Django Rest Framework support pagination from query parameter

+0

do najnowszej wersji restangular użytku addResponseInterceptor() zamiast addResponseExtractor() – Jakobovski