Angularjs和Web Api返回int数组

时间:2014-02-17 14:55:37

标签: javascript json angularjs asp.net-web-api

对于使用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

2 个答案:

答案 0 :(得分:3)

查看错误及其文档

http://docs.angularjs.org/error/$resource/badcfg

很明显,查询应该返回一个数组,而你的是一个具有单个属性Items的对象。

在资源上使用get方法。

答案 1 :(得分:1)

documentation for $resource表示创建模型应该以不同的方式完成。如果你只是想对这个URL发出XHR请求,我会改用$ http服务并解析它在视图中返回的承诺。