angularjs – Restangular:具有包含嵌入式数组的对象的getList

在我的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。传递的函数可能需要进行一些调整。

http://stackoverflow.com/questions/22012655/restangular-getlist-with-object-containing-embedded-array

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:angularjs – Restangular:具有包含嵌入式数组的对象的getList