是否可以在复杂的json格式中使用ng-repeat?

时间:2015-03-14 09:27:37

标签: json angularjs angularjs-ng-repeat

这是json格式:

{"data": {
    "asd": {
        "index": "2",
        "x": "dsds",
        "y": "dsadsa"
    },
    "sfs": {
        "index": "1",
        "x": "dsds",
        "y": "dsds"
    }
}}

我想使用angularjs的ng-repeat显示这些数据索引,x和y值。但我无法想到{{}}内的格式会是什么样的。

我已经做过一些研究,但大多数人建议改变格式。如果更改格式不是一个选项怎么办?我还能用ng-repeat显示它吗?

2 个答案:

答案 0 :(得分:3)

怎么样:

<tr ng-repeat="(key, value) in dataContainer.data">
    <td>{{ value.index }}</td>
    <td>{{ value.x }}</td>
    <td>{{ value.y }}</td>
</tr>

工作示例:http://jsfiddle.net/pk7a44f7/1/

答案 1 :(得分:1)

如果使用正确的语法并访问正确的值,基本上可以在ng-repeat中显示任何内容。

我创建了一个显示对象中所有项目的演示jsfiddle

HTML:

<div ng-app="APP" ng-controller="TST">
    <div ng-repeat="(key,val) in test_obj.data">
        <p>{{key}}</p>
        <p ng-repeat="(k,v) in val">{{k}} - {{v}}</p>
    </div>    
</div>

JS:

var APP = angular.module('APP', []);

APP.controller('TST', ['$scope', function($scope) {
    $scope.test_obj = {
        "data": {
            "asd": {
                "index": "2",
                "x": "dsds",
                "y": "dsadsa"
            },
            "sfs": {
                "index": "1",
                "x": "dsds",
                "y": "dsds"
            }
        }
    };
}]);