我的Rails API以这种方式在响应头中使用分页数据:
X-Pagination {"total":332,"total_pages":12,"first_page":true,"last_page":false,"previous_page":null,"next_page":2,"out_of_bounds":false,"offset":0}
我需要在getList()调用期间访问此值以显示分页器等。
我看到标题是空的。
我该如何解决这个问题?
谢谢,Stefano
答案 0 :(得分:9)
您可以使用setFullResponse方法返回所有响应数据。我想你需要一个完整的响应作为例外,所以只需在本地配置Restangular,如:
var rest = Restangular.withConfig(function(RestangularConfigurer) {
RestangularConfigurer.setFullResponse(true);
});
rest.getList().then(function(response) {
console.log(response.headers('X-Pagination'));
});
答案 1 :(得分:4)
要添加2j2e的答案,我已经创建了一个工厂,我就这样使用:
angular.module('myApp')
.factory('RestFullResponse', ['Restangular', function (Restangular) {
return Restangular.withConfig(function (RestangularConfigurer) {
RestangularConfigurer.setFullResponse(true);
});
}]);
在控制器中:
angular.module('myApp')
.controller('PikachuCtrl', function ($scope, Restangular, RestFullResponse) {
var ideas = RestFullResponse.all('Pikachus');
ideas.getList().then(function(response){
$scope.Pikachus = response.data;
var XPagination = response.headers('X-Pagination');
};
})
答案 2 :(得分:0)
如果您只想阅读响应的特定标题,并且在所有Restangular请求中不需要包含标题的完整响应,则可以在response interceptor中查找标题并将其添加到响应中。 / p>
app.config(function(RestangularProvider) {
RestangularProvider.addResponseInterceptor(function(data, operation, what, url, response, deferred) {
var pagination;
if (pagination = response.headers('X-Pagination')) {
data.paginationData= pagination;
}
return data;
});
});