NgResource 调用请求地图
NgResource get call for requesting a map
我正在做一个小应用程序,昨天我意识到这件事我真的无法理解。
我的控制器 Java 正在监听请求,它 returns 是一个具有多个值的地图。但是当我在控制器中使用 ngResource 时,我调用的是 .get() 方法而不是 .query() 方法,然后在视图上我可以使用类似 x in response...
。 query() 不应该用于数组而 get() 不应该只用于一个对象吗?
有人可以解释一下吗?谢谢
EDIT 所以,我从 {"1":"PRUEBA","2":"HOLA"}
收到的 json 就是这个,如果我使用 .query() 我会得到以下错误:
Error in resource configuration for action Error in resource
configuration for action
{0}. Expected response to contain an {1}
but got an {2} (Request: {3} {4})
. Expected response to contain an
query but got an array (Request: object GET)
所以,我仍然不明白为什么我在获取数组时需要 .get...
默认查询 returns 一个数组,而获取不会
{ 'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
您可以使用不同的 url 覆盖 get 或创建其他函数并将 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() 方法。
我正在做一个小应用程序,昨天我意识到这件事我真的无法理解。
我的控制器 Java 正在监听请求,它 returns 是一个具有多个值的地图。但是当我在控制器中使用 ngResource 时,我调用的是 .get() 方法而不是 .query() 方法,然后在视图上我可以使用类似 x in response...
。 query() 不应该用于数组而 get() 不应该只用于一个对象吗?
有人可以解释一下吗?谢谢
EDIT 所以,我从 {"1":"PRUEBA","2":"HOLA"}
收到的 json 就是这个,如果我使用 .query() 我会得到以下错误:
Error in resource configuration for action
Error in resource configuration for action
{0}. Expected response to contain an {1} but got an {2} (Request: {3} {4})
. Expected response to contain an query but got an array (Request: object GET)
所以,我仍然不明白为什么我在获取数组时需要 .get...
默认查询 returns 一个数组,而获取不会
{ 'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
您可以使用不同的 url 覆盖 get 或创建其他函数并将 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() 方法。