首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ngResource和Json规范

ngResource和Json规范
EN

Stack Overflow用户
提问于 2015-06-10 06:03:34
回答 2查看 1.2K关注 0票数 2

我正在使用一个遵循JSON规范的API。

代码语言:javascript
复制
http://jsonapi.org/

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

代码语言:javascript
复制
[
  {
    "id": 1,
    "foo": "bar"
  },
  {
  ...
  }
]

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

代码语言:javascript
复制
{
  "data": [
    {
      "id": 1,
      "foo": "bar"
    },
    {
    ...
    }
  ]
}

我如何能够自动地对来自API的响应进行后处理以满足ngResource的期望呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-10 06:12:42

查看transformResponse和拦截器对象。

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

编辑:添加代码

代码语言:javascript
复制
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
    return {
      'response': function(response) {
        response.data = response.data.data;
        return response;
      }
    };
  });

$httpProvider.interceptors.push('myHttpInterceptor');
票数 5
EN

Stack Overflow用户

发布于 2015-06-10 06:14:33

编辑:

如下面所示,默认情况下构建查询方法是为了处理数组。

代码语言:javascript
复制
{ 'get':    {method:'GET'},
  'save':   {method:'POST'},
  'query':  {method:'GET', isArray:true},
  'remove': {method:'DELETE'},
  'delete': {method:'DELETE'}
};
  1. 您可以使用简单的GET方法从api获取对象列表响应。
  2. 或者可以用这种方式更改查询默认行为。
代码语言:javascript
复制
var config = { method:'GET', isArray: false };
var url = 'http://jsonapi.org';
$resource(url, {}, {query: config});

想了解更多细节。请检查https://docs.angularjs.org/api/ngResource/service/$resource

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30748289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档