在表格中组合两个ng重复

时间:2014-08-05 23:03:41

标签: angularjs angularjs-ng-repeat

我想在表格中使用两个不同的ng-repeat循环,以便将不同的对象分组,但实际上并不知道该怎么做。

我的代码现在:

...
<tbody>
    <tr ng-repeat="person1 in Array1">
        <td>{{ person1.address }}</td>
        <td>{{ person1.city}}</td>
        <td>{{ person1.email}}</td>
    </tr>
    <tr ng-repeat="person2 in Array2">
        <td>{{partner2.address }}</td>
        <td>{{partner2.city}}</td>
        <td>{{partner2.email}}</td>
    </tr>
</tbody>
...

我的目标是结果/表:

person1[1].address   |    person1[1].city    | person1[1].email
---------------------------------------------------------------
person2[1].address   |    person2[1].city    | person2[1].email
---------------------------------------------------------------
person1[2].address   |    person1[2].city    | person1[2].email
---------------------------------------------------------------
person2[2].address   |    person2[2].city    | person2[2].email
---------------------------------------------------------------

也就是说,我想在推出person1 [2]之前将ng-repeat放到person1 [1]和person2 [1]之外。

解决方案是添加外部数组,包含我的两个当前数组还是有更好的解决方案?

最好的问候

1 个答案:

答案 0 :(得分:2)

假设你可以确保你的数组没有空值并且长度相同,你可以使用这种技术:

创建一个初始化为其他两个数组长度的新数组,并对其进行迭代以得到$index。 将ng-repeat放在正文上(表中可以有多个body元素。)

你会得到这样的东西:

var counterArray = new Array(array1.length);
<tbody ng-repeat="item in counterArray">
    <tr>
        <td>{{ Array1[$index].address }}</td>
        <td>{{ Array1[$index].city}}</td>
        <td>{{ Array1[$index].email}}</td>
    </tr>
    <tr >
        <td>{{ Array2[$index].address }}</td>
        <td>{{ Array2[$index].city}}</td>
        <td>{{ Array2[$index].email}}</td>
    </tr>
</tbody>

在这些阵列上使用getter函数可能更安全:

getData(index,array,value)

可以防止发生任何空错误。