NgResource接到请求地图的电话

时间:2016-05-18 10:00:53

标签: javascript java angularjs json ngresource

我正在做一个小应用程序,我昨天意识到这个我无法理解的事情。

我的Java控制器正在侦听请求,它返回一个包含多个值的Map。但是当我在控制器中使用ngResource时,我调用.get()方法而不是.query()一个,然后在视图上我可以迭代我用.get()获得的响应x in response...。那个查询()不是针对数组而是get()只针对一个对象吗?

有人可以解释一下吗?感谢

编辑所以,我从{"1":"PRUEBA","2":"HOLA"}收到的json就是这个,如果我使用.query(),我会收到以下错误:

  

操作Error in resource configuration for action {0} . Expected response to contain an {1} but got an {2} (Request: {3} {4})的资源配置出错。预期的回应包含一个   查询但得到一个数组(请求:对象GET)

所以,我还是不明白为什么我需要一个.get,如果我得到一个数组...

1 个答案:

答案 0 :(得分:1)

默认情况下,查询返回一个数组并获取不

  { 'get':  {method:'GET'},
  'save':   {method:'POST'},
  'query':  {method:'GET', isArray:true},
  'remove': {method:'DELETE'},
  'delete': {method:'DELETE'} };

你可以覆盖get或创建另一个函数,使用不同的url并将isArray设置为true:

  angular.module('myModule').factory('myResourceFactory', function($resource, apiHost) {
  return $resource(apiHost + '/myresources/:myresourceId', null, {
        'query': { method:'GET', url: apiHost + '/myresources/:myresourceId/somethings',isArray: true}
    }); 
});

查询方法需要一个数组[{obj1},{obj2}]

get方法需要一个对象{" 1":" PRUEBA"," 2":" HOLA"}

在你的情况下你应该使用get()方法。