Javascript angularjs资源查询错误解释数组
我的REST服务器正在从Javascript angularjs资源查询错误解释数组,javascript,angularjs,rest,resources,Javascript,Angularjs,Rest,Resources,我的REST服务器正在从/blog返回以下内容: ["hello","yo"] 这是我的整个angularjs应用程序: var myapp = new angular.module("myapp", ["ngResource"]); myapp.controller("MainCtl", ["$scope", "$resource", function($scope, $resource){ var Blog = $resource("/blog/:entry", {entry:
/blog
返回以下内容:
["hello","yo"]
这是我的整个angularjs应用程序:
var myapp = new angular.module("myapp", ["ngResource"]);
myapp.controller("MainCtl", ["$scope", "$resource", function($scope, $resource){
var Blog = $resource("/blog/:entry", {entry: '@entry'});
$scope.entries = Blog.query();
}]);
当我把{{entries}}
放在html的某个地方时,我看到:[{“0”:“h”,“1”:“e”,“2”:“l”,“3”:“l”,“4”:“o”},{“0”:“y”,“1”:“o”}]
不知何故,angular误解了这个值数组。我也尝试了同样的结果:
myapp.controller("MainCtl", ["$scope", "$resource", function($scope, $resource){
var Blog = $resource("/blog/:entry", {entry: '@entry'}, {
list: {
url: "/blog",
method: "GET",
isArray: true,
transformResponse: function(data, headers) {
var h = ["hello","yo"];
console.log(h);
return h;
}
}
});
$scope.entries = Blog.list();
}]);
有趣的是,
console.log
调用打印正确的值。这绝对是
使用$resource时,如果isArray=false,则预期的响应是JSON对象:
{
"foo" : "bar"
}
如果isArray=true,则预期的响应应该是对象的JSON数组:
在这种情况下,您有三种选择:
transformResponse
功能(请参阅.$http)isArray=true
),也可以发送包含数组的对象(使用isArray=false
)。哪个对你更有意义顺便说一下,这是angular 1.2.10。这很可能是您从服务器端发送响应的方式。你在那里用什么?例如
[
{ "foo" : "bar" },
{ "faa" : "bah" }
]