我的服务器的REST API响应GET
对包含以下对象的故事请求:
bookmark: "g1AAAAEoeJzLYWBgYMlgTmFQSklKzi9KdUhJMjTQy83PzyvOyMxL1UvOyS9NScwr0ctLLckBqmVKZEiy____fxaY4-a0KbA8-7lHcaJQFsgQRbghRvjMSHIAkkn1qMbEBG0VT-RFM8YMnzF5LECSoQFIAU3ajzCqaMqJzw8SedCMMids1AGIUf-RjTrdMTGRMysLAOQyZD8"
rows: [{id: "IPc3JoAvxHJt426ULI8Qwg", order: [20141108190902.652, 21],…},…]
total_rows: 12
我正在使用Restantular的getList()
来获取故事,以及自定义响应拦截器将响应对象转换为一系列故事。我的响应拦截器看起来像这样:
RestangularProvider.addResponseInterceptor(function (data, operation, what, url, responses, deferred) {
if(operation !== "getList") return data;
var response = jQuery.map(data.rows, function(row, i){
return (row.doc);
});
return response;
});
但是,现在我发现我需要访问服务器响应中的bookmark
和total_rows
属性。我知道getList()
每当要求返回对象而不是数组时都会抛出错误。所以我不能在我的响应拦截器中返回这样的东西:
return { data:data, stories:response }
使用Restangular获取故事列表和其他属性的最佳方法是什么?
答案 0 :(得分:0)
这是我现在用来解决这个问题的responseInterceptor的一个例子:
RestangularProvider.addResponseInterceptor(function (data, operation, what, url, responses, deferred) {
if(operation !== "getList") return data;
var response;
response = jQuery.map(data.rows, function(row, i){
return (row.doc);
});
response.meta = { total_rows: data.total_rows, bookmark: data.bookmark };
return response;
});