2017-03-01 52 views
1

任何人都知道如何獲得嵌套ng-repeat的第一級$index

這裏是我的數據:

vm.rooms = [ 
     { 
      name: 'Room1', students: ['Cal', 'Ryan', 'Luigi', 'Joel'] 
     }, 
     { 
      name: 'Room2', students: ['Jaime', 'Sherwin', 'Gami', 'Beau'] 
     }, 
     { 
      name: 'Room3', students: ['Roel', 'Edwin', 'Carl', 'Necho'] 
     } 
    ] 

,我希望得到如下的輸出:

Room1 - Idx: 0 
    Cal - Idx: 0 on room idx: 0 
    Ryan - Idx: 1 on room idx: 0 
    Luigi - Idx: 2 on room idx: 0 
    Joel - Idx: 3 on room idx: 0 
Room2 - Idx: 1 
    Jaime - Idx: 0 on room idx: 1 
    Sherwin - Idx: 1 on room idx: 1 
    Gami - Idx: 2 on room idx: 1 
    Beau - Idx: 3 on room idx: 1 
Room3 - Idx: 2 
    Roel - Idx: 0 on room idx: 2 
    Edwin - Idx: 1 on room idx: 2 
    Carl - Idx: 2 on room idx: 2 
    Necho - Idx: 3 on room idx: 2 

但我在這裏獲得這一個我DEMO可以檢查HTML結構出現。

回答

2

您可以使用$ parent來訪問父級的範圍。 因此,使用

$parent.$index 
+0

如果a有3個嵌套的ng-repeat級別呢?這個問題是否仍然解決了它 –

+0

是的,你繼續鏈接'$ parent'繼續上升水平。 –

+0

非常感謝! –

1

您可以使用

$父。$指數

其他簡單的解決方案是發起NG-INIT指數具有不同的變量

<div ng-app="app" ng-controller="ctrl"> 
    <div ng-repeat="i in [1,2,3,4]" ng-init="firstIndex=$index"> 
    <div ng-repeat="i in [1,2,3,4]" ng-init="secondIndex=$index"> 
     <div ng-repeat="i in [1,2,3,4]" ng-init="thirdIndex=$index"> 
     {{firstIndex}}:{{secondIndex}}:{{thirdIndex}} 
     </div> 
    </div> 
    </div> 
</div> 

var app=angular.module("app",[]); 
 
app.controller("ctrl",function($scope){ 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
    <div ng-repeat="i in [1,2,3,4]" ng-init="firstIndex=$index"> 
 
    <div ng-repeat="i in [1,2,3,4]" ng-init="secondIndex=$index"> 
 
     <div ng-repeat="i in [1,2,3,4]" ng-init="thirdIndex=$index"> 
 
     {{firstIndex}}:{{secondIndex}}:{{thirdIndex}} 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>