使用Angular ng-repeat显示JSON行/列

时间:2014-07-09 15:55:05

标签: json angularjs

我从API返回的JSON按字段(即表格列)嵌套FIRST,然后按记录(即表格行)嵌套。所以,JSON看起来像这样:

myJSON = {
    'data':{
        'id': [1,2,3],
        'groks':['a','b','c']
    }
}

我正在尝试使用angular在我的桌子中正确显示它们。这就是他们应该看的样子:

id groks
 1   a
 2   b
 3   c

它不像

那么简单
<tbody ng-repeat="x in myJSON.data">
    <tr>
        <td>{{x[0]}}</td>
        <td>{{x[1]}}</td>
    </tr>
</tbody>

因为我最终会得到这个,或者某些东西:

id groks
 a   b  
 1   2

那么,我如何告诉ng-repeat要FIRST迭代内部行,那么通过外部列?

漫长的方法是将JSON预操作为可以迭代的格式。即我需要操纵数据,直到看起来像这样:

myJSON = {
    'data':{
        ['id': 1,'groks':'a'],
        ['id': 2,'groks':'b'],
        ['id': 3,'groks':'c']
    }
}

然后我可以这样做:

<tbody ng-repeat="x in myJSON.data">
    <tr>
        <td>{{x.id}}</td>
        <td>{{x.groks}}</td>
    </tr>
</tbody>

但我有其他选择吗?

1 个答案:

答案 0 :(得分:1)

您可以迭代其中一个数组并使用$index来获取任何其他数组中的相应元素:

<tbody ng-repeat="id in myJSON.data.id">
    <tr>
        <td>{{id}}</td>
        <td>{{myJSON.data.gorks[$index]}}</td>
    </tr>
</tbody>