TLDR; ngResource 期望的物体或阵列 对象 中的响应。
在操作列表
isArray中将设置 为时
true, ngResource
模块遍历响应中收到的每个项目,并创建一个新的Resource实例。为此,Angular在收到的项目和
Resource类之间执行了深层复制,这为我们提供了具有特殊方法的对象(
$save,
$delete依此类推)
在此处检查源。
在内部使用 angular.copy
进行深度复制,此功能仅对 对象 和 数组 起作用,当我们传递字符串时,它将像对待对象一样对待它。
通过提供对每个字符的顺序访问,JS中的字符串可以表现为数组。
angular.copy传递字符串时将产生以下内容
angular.copy('hi',{}) => {0:'h', 1:'i'}每个字符都将成为对象中的一个值,并将其索引设置为键。 ngResource 将提供具有属性
0和的资源
1。
您的选择是:
使用较低级别的 $ http 服务
$http.get('/res').success(function(data){ $scope.test = data;});在json响应中返回对象数组
[{'data': "hello"}, {'data': "world"}]拦截响应并更改您的数据
如果您无法修改服务器发回的数据并想使用 ngResource
,则需要转换响应。在这里阅读操作方法



