Цикл нескольких массивов одновременно с ng-repeat
Можно ли перемещать два массива одновременно, используя только один ng-repeat
в AngularJs? Если да, то как?
Например, у меня есть два массива
array1 = [1,2,3,4,5]
array2 = [6,7,8,9,10]
Он должен иметь возможность создавать один и тот же индекс для обоих массивов.
Ответы
Ответ 1
Если вы хотите получить второй массив с индексом первого, попробуйте следующее:
$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/
Ответ 2
Насколько мне известно, Angular не реализует что-то, чтобы перебирать несколько массивов.
Одним из решений будет конкатентные массивы и повторение результата.
Попробуйте следующее:
<div ng-repeat="item in [1,2,3,4,5].concat([6,7,8,9,10])">
{{item}}
</div>
Ответ 3
Если вы хотите использовать ngRepeat для комбинации двух массивов, используйте javascript concat() (AngularJS разрешает variable in expression
в директиве ngRepeat).
<div ng-repeat="item in array1.concat(array2)">{{item}}</div>
Ответ 4
Angular
$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]}}">