从.NET Webmethod获取JSON,用于ng-repeat

克里斯托弗·奥尔森

好吧,所以我到处寻找了一些帮助。至少从这个SO答案中可以看出:https : //stackoverflow.com/a/24657665/1223463

但是,这就是我的立场:

我从Web方法中获取了数据,并能够{{data}}在页面上简单地显示它但是,当我尝试遍历数据(它由两个JSON对象组成)并引用其数据键时,没有任何显示。

Javascript:

angular.module("myApp", [])
            .controller("MyController", function ($scope, $http) {

                $scope.data = [];
                $scope.getData = function (item, event) {
                    $http.post('NGTest.aspx/GetGroups', { data: {} })
                        .success(function (data, status, headers, config) {
                            $scope.data = data.d;
                        });
                };

        }).config(function ($httpProvider) {

                $httpProvider.defaults.headers.post = {};

                $httpProvider.defaults.headers.post["Content-Type"] = "application/json; charset=utf-8";

            });

HTML:

<body ng-app="myApp">

    <div ng-controller="MyController" >
        <button ng-click="getData(item, $event)">Get data</button>
        <br/>

        {{data}}

        <div ng-repeat="d in data">
            {{d.ID}} a row
        </div>
    </div>
</body>

后面的代码:

[WebMethod(EnableSession = true)]
    public static string GetGroups()
    {
        return @"[{
            'ID': 1568,
                'Orgno': '282-1'
        }, {
            'ID': 1569,
                'Orgno': '8925-2'
        }]";
    }

因此,当我按下按钮时,数据显示为:[{ 'ID': 1568, 'Orgno': '282-1' }, { 'ID': 1569, 'Orgno': '8925-2' }]简单明了。但是ng-repeat部分不产生任何代码。

这是一个看似相同的小提琴:http : //jsfiddle.net/eurythmech/t9jzbm06/

我看到的一件事是它们之间的不同之处在于,在提琴中,提供了JSON数据而没有引号引起来。

这是我需要解决的问题吗?如果是这样,怎么办?

帕克曼

看来您的数据是作为字符串而不是作为对象返回的。您可以在$ http调用中添加一个eval:

$scope.getData = function (item, event) {
   $http.post('NGTest.aspx/GetGroups', { data: {} })
   .success(function (data, status, headers, config) {
       $scope.data = eval(data.d);
   });
};

更好的方法是在GetGroups方法中返回对象数组,因此ASP.NET将为您序列化它。那里有更多信息WebMethod返回JSON,但我的$ .ajax()回调中的响应obj只是一个字符串

正如您所说,还有一件事,JSON必须对字符串使用双引号(请检查http://www.json.org/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS ng-repeat从JSON获取数据

来自分类Dev

JSON解析不适用于ng-repeat

来自分类Dev

ng-repeat不适用于json值

来自分类Dev

从ng-repeat获取ID

来自分类Dev

获取ng-repeat内ng-repeat的索引

来自分类Dev

AngularJS:ng-repeat用于纯文本

来自分类Dev

嵌套ng-repeat用于多维数组

来自分类Dev

AngularJS:ng-repeat用于纯文本

来自分类Dev

从ng-repeat获取实际的数组索引

来自分类Dev

从外部ng-repeat中获取价值

来自分类Dev

AngularJS-在ng -repeat中获取对象

来自分类Dev

如何从ng-repeat获取数组项?

来自分类Dev

ng-repeat的性能

来自分类Dev

使用ng-repeat

来自分类Dev

嵌套json对象的角度ng-repeat?

来自分类Dev

AngularJS:ng-repeat不显示JSON

来自分类Dev

解析ng-repeat中的JSON

来自分类Dev

嵌套ng-repeat与json奇怪的结果

来自分类Dev

ng-repeat不输出JSON数据

来自分类Dev

json文件中的ng-repeat数组

来自分类Dev

AngularJS ng-repeat json格式

来自分类Dev

无法使用ng-repeat访问JSON

来自分类Dev

AngularJS,嵌套JSON和ng-repeat

来自分类Dev

具有大JSON的ng-repeat

来自分类Dev

嵌套ng-repeat与json奇怪的结果

来自分类Dev

在 json 对象上使用 ng-repeat

来自分类Dev

可以将ng-repeat limitTo应用于在json而不是数组上重复吗?

来自分类Dev

带有 ng-repeat 的角度选择不适用于 json 对象

来自分类Dev

Angularjs - 从第一个 ng-repeat 获取 $index 并将其用于第二个 ng-repeat