2015-06-15 17 views
12

Czy mogę przechodzić dwie macierze jednocześnie, używając tylko jednego ng-repeat w AngularJs? Jeśli tak, to w jaki sposób?zapętlanie wielu tablic jednocześnie z powtórzeniem ng

Na przykład mam dwie tablice

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

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

powinien on być w stanie produkować ten sam wskaźnik dla obu tablic.

+0

Czy możesz wyjaśnić swoje pytanie? – simon

Odpowiedz

22

Jeśli chcesz acces drugą tablicę z indeksu pierwszego, spróbuj tego:

$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> 

Zobacz ten skrzypce: http://jsfiddle.net/dm9zhgx9/

+10

Działa to tylko wtedy, gdy obie macierze mają te same rozmiary. – jbigman

+0

wystarczająco dobre dla wielu przypadków – Martian2049

6

Jeśli chcesz użyć kombinacji ngRepeat dla kombinacji dwóch tablic, użyj funkcji javascript concat() (AngularJS zezwala na variable in expression w dyrektywie ngRepeat).

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

Z mojej wiedzy wynika, że ​​Angular nie implementuje czegoś do iteracji na wielu tablicach.

Jednym z rozwiązań byłoby połączenie tablic i powtórzenie wyniku.

Spróbuj tego:

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

kątowa

$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]}}"> 
Powiązane problemy