使用ng-repeat同时循环多个数组

时间:2015-06-15 13:08:47

标签: html angularjs

我可以在AngularJs中只使用一个ng-repeat来同时遍历两个数组吗?如果是这样,那怎么样?

例如我有两个数组

array1 = [1,2,3,4,5]

array2 = [6,7,8,9,10]

它应该能够为两个数组生成相同的索引。

4 个答案:

答案 0 :(得分:30)

如果要使用第一个索引访问第二个数组,请尝试:

$scope.arr1 = [1, 2, 3, 4, 5]
$scope.arr2 = [6, 7, 8, 9, 10]

<div ng-repeat="number in arr1">
    Number from array1 = {{number}}
    Number from array2 = {{arr2[$index]}}
</div>

看到这个小提琴:http://jsfiddle.net/dm9zhgx9/

答案 1 :(得分:13)

据我所知,Angular没有实现迭代多个数组的东西。

一种解决方案是连接数组,并迭代结果。

试试这个:

<div ng-repeat="item in [1,2,3,4,5].concat([6,7,8,9,10])">
    {{item}}
</div>

答案 2 :(得分:6)

如果要将ngRepeat用于两个数组的组合,请使用javascript concat()函数(AngularJS允许在ngRepeat指令中使用variable in expression。)

<div ng-repeat="item in array1.concat(array2)">{{item}}</div>

答案 3 :(得分:0)

$http.get("json/timeline.json")
        .then(function(response) {
            var datalen = response.data.tline.length;           
            for (var i=0; i<datalen; i++){
                vm.eventlist.push(response.data.tline[i]);
                vm.hpos.push({ 'left' : pos * i + 'px'});
            }

        });

HTML

<li ng-repeat="event in vm.eventlist">
                            <section class="timeline-event past-event" ng-style="{{vm.hpos[$index]}}">