javascript - Angular.js 和 WebApi 返回 int 数组

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

为了使用 Angular 进行测试,我有一个 Webapi 方法,它返回包含列表的对象的实例。 (json输出如下所示)

现在在我的 Angular Controller 中我想检索这个对象。

有人提示我做错了什么吗?

RestResource 作为工厂

myngApp.factory("valueResource", function ($resource) {

    var result =
        {
            database: $resource("/api/values")
        }

    return result;
});

Controller :

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

最佳答案

查看错误及其文档

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

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

对资源使用 get 方法。

关于javascript - Angular.js 和 WebApi 返回 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21832239/

相关文章:

iphone - 使用 NSJSONSerialization 将 NSMutableDictionary 转换为 JSON 返回不同的结果

json - RESTful json 响应在 tomcat 上失败但在 GlassFish 中有效

javascript - 如果是 webapp,脚本应该包含在 head 中吗?

javascript - angular.copy() 不会破坏对模型的引用

javascript - 使用 AngularJs 往返 "transfer"指令的最佳方法是什么

javascript - 当子组件通过父组件过滤时,如何维护子组件的状态?

javascript日期平等混淆

javascript - 防止同时播放 HTML5 视频和音频元素

javascript - 当 num > 2147483647 时按位或导致溢出

arrays - 如何从 PostgreSQL 中的 json 数组中获取具有唯一编号的元素?