我正在做一个小应用程序,我昨天意识到这个我无法理解的事情。
我的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,如果我得到一个数组...
答案 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()方法。