对于使用angular进行测试,我使用了一个Webapi方法,该方法返回一个包含List的对象的实例。 (json输出可以在下面看到)
现在在我的角度控制器中,我想要检索此对象。
有没有人暗示我做错了什么?
RestResource为工厂
myngApp.factory("valueResource", function ($resource) {
var result =
{
database: $resource("/api/values")
}
return result;
});
控制器:
myngApp.controller("dataController", function ($scope, settings, valueResource) {
$scope.message = "Hello World!";
$scope.userName = settings.user;
$scope.restValues = valueResource.database.query({});
});
json响应(与fiddler合作)是:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?RDpca2lsblxleHBlcmltZW50YWxcc3JjXG5nMlxXZWJBcHBsaWNhdGlvbjFcV2ViQXBpXHZhbHVlcw==?=
X-Powered-By: ASP.NET
Date: Mon, 17 Feb 2014 14:47:35 GMT
Content-Length: 19
{"Items":[1,2,3,4]}
控制台输出为:
XHR finished loading: "http://localhost:55671/api/values". angular.js:8013
Error: [$resource:badcfg] http://errors.angularjs.org/1.2.12/$resource/badcfg?p0=array&p1=object
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js:6:450
at p.then.m.$resolved (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular-resource.min.js:8:517)
at A (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js:93:5)
at A (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js:93:5)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js:94:173
at h.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js:102:456)
at h.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js:100:218)
at h.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js:103:264)
at f (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js:67:120) angular.js:9435
答案 0 :(得分:3)
查看错误及其文档
http://docs.angularjs.org/error/$resource/badcfg
很明显,查询应该返回一个数组,而你的是一个具有单个属性Items的对象。
在资源上使用get
方法。
答案 1 :(得分:1)
documentation for $resource表示创建模型应该以不同的方式完成。如果你只是想对这个URL发出XHR请求,我会改用$ http服务并解析它在视图中返回的承诺。