angularjs - serve - ¿Cómo agregar paginación en Restangular y Django Rest Framework?
rest framework django 2 (1)
Supongo que simplemente puedes llamar:
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;
});
y
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'');
});
No soy habitual con la paginación de apoyo Rectangular
pero Django Rest Framework del parámetro de consulta
En DRF he agregado el límite de paginación a 100 ''PAGINATE_BY'': 100,
ya que Restangular espera resultados en forma de matriz, tuve que usar la función de metaejector siguiente en mi módulo de aplicación angular
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;
});
});
y mi controlador parece
app.controller(''DataCtrl'',function($scope, Restangular){
var resource = Restangular.all(''myapp/api/dataendpoint/'');
resource.getList().then(function(data){
$scope.records = data;
});
}
La información meta no está disponible en el controlador, ¿cómo puedo paginar si hay más de 100 registros disponibles?