ngResource和Json API规范

kid*_*rew 2 angularjs ngresource

我正在使用遵循JSON API规范的API.

http://jsonapi.org/
Run Code Online (Sandbox Code Playgroud)

我正在使用ngResource在Ionic中构建应用程序,而resource.query()方法希望响应是一个数组:

[
  {
    "id": 1,
    "foo": "bar"
  },
  {
  ...
  }
]
Run Code Online (Sandbox Code Playgroud)

但是JSON API规范传递了嵌套在该data属性下的内容:

{
  "data": [
    {
      "id": 1,
      "foo": "bar"
    },
    {
    ...
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

如何自动后处理来自API的响应以满足ngResource的期望?

aad*_*hsg 5

查看transformResponse和拦截器对象.

https://docs.angularjs.org/api/ngResource/service/ $ resource

编辑:添加代码

$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
    return {
      'response': function(response) {
        response.data = response.data.data;
        return response;
      }
    };
  });

$httpProvider.interceptors.push('myHttpInterceptor');
Run Code Online (Sandbox Code Playgroud)