【发布时间】:2014-12-17 20:06:08
【问题描述】:
我的服务器的 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 获取故事列表和附加属性的最佳方法是什么?
【问题讨论】:
-
使用 customGET 而不是 getList。 customGET 将允许您拥有对象而不是集合。 getList 需要一个集合作为响应。如果你的响应包含对象,并且你有你的数组和其他东西,那么你应该使用 customGET 方法。
标签: restangular