在我的AngularJS项目中,我试图使用Restangular getList方法,但是它返回一个错误,因为API响应不是直接的数组,而是包含数组的对象。
- {
- "body": [
- // array elements here
- ],"paging": null,"error": null
- }
Restangular错误消息是:
- Error: Response for getList SHOULD be an array and not an object or something else
有可能告诉Restangular,它正在寻找的数组是在body属性内部吗?
是的,请参阅
Restangular documentation.您可以像这样配置Restangular:
- rc.setResponseExtractor(function(response,operation) {
- if (operation === 'getList') {
- var newResponse = response.body;
- newResponse.paging = response.paging;
- newResponse.error = response.error;
- return newResponse;
- }
- return response;
- });
编辑:似乎Restangular的API现在已经改变了,为了更好,目前使用的方法是addResponseInterceptor。传递的函数可能需要进行一些调整。