AngularJs ng-repeat表中的2D数组,每个子数组一列

时间:2014-10-28 11:16:51

标签: arrays angularjs 2d ng-repeat

我有一个数组,我需要将该数组放在表中。

$scope.testArr=[
    {'first':[
            { 'value':'1_1', 'rolle':'one1' },
            { 'value':'2_1', 'rolle':'two1' },
            { 'value':'3_1', 'rolle':'three1'}  
        ]
    },
    {'second': [
            { 'value':'1_2', 'rolle':'one2' },
            { 'value':'2_2', 'rolle':'two2' },
            { 'value':'3_2', 'rolle':'three2' } 
        ]
    }
];

结果表应该有4列,每个子数组应该是一列(或两列)。像这样:

one1 | 1_1 | one2 | 1-2
two1 | 2_1 | two2 | 2_2   
three1|3_1 | three2|3_2

到目前为止,我得到了这个。它只是第一个子阵列:

<table>
    <tbody ng-repeat="test in testArr">
        <tr ng-repeat="t1 in test.first">
            <td> {{t1.rolle}} </td> 
            <td> {{t1.value}} </td>
        </tr>
    </tbody>
</table>

如何将第二个子阵列添加为列?没有必要成为一张桌子。

1 个答案:

答案 0 :(得分:3)

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

app.controller('mainCtrl', function ($scope) {


    $scope.testArr = [{
        'first': [{
            'value': '1_1',
            'rolle': 'one1'
        }, {
            'value': '2_1',
            'rolle': 'two1'
        }, {
            'value': '3_1',
            'rolle': 'three1'
        }]
    }, {
        'second': [{
            'value': '1_2',
            'rolle': 'one2'
        }, {
            'value': '2_2',
            'rolle': 'two2'
        }, {
            'value': '3_2',
            'rolle': 'three2'
        }]
    }];

});
td {
  border:solid 1px grey
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app">
    <div ng-controller="mainCtrl">
<table>
    <tbody ng-repeat="test in testArr">
        <tr ng-repeat="t1 in test.first">
            <td>{{t1.rolle}}</td>
            <td>{{t1.value}}</td>
            <td>{{testArr[1].second[$index].rolle}}</td>
            <td>{{testArr[1].second[$index].value}}</td>
        </tr>
    </tbody>
</table>
    </div>
    </div>