1

所以我有一個相當複雜的角度表,我有重複部分都很好去,但當我設置一個變量與ng-class-evenng-class-odd,變量似乎並沒有持續。也許我誤解了ng-repeat的範圍,但我很難過。角度嵌套ng重複類變量

我重複看起來像:

<tr ng-repeat-start="item in data.group" ng-class-even="color='red'" ng-class-odd="color='blue'"> 
    <td>{{item.name}}</td>    
    <tr ng-repeat-end ng-repeat="inner in item.innerdata" ng-class="color"> 
     <td>{{inner.innername}}</td> 
    </tr> 
</tr> 

所以,我希望的顏色而行循環設置。這裏有一個Fiddle with the sample setup.

+0

@JsIsAwesome我認爲你誤解了代碼在做什麼。在'ng-class-even'中,它將一個名爲'color'的變量設置爲'red'的值。也許我沒有把我的變量說得很好。我試圖在'ng-class'中使用'color'的變量,但它只能由最後一個重複項設置。 – Chad 2015-03-30 19:53:54

回答

3

ng-class-even & ng-class-odd將着眼於當前ng-repeat $索引對象,並決定其價值應給予類屬性。

ng-class-even/ng-class-odd

取一個表達&評價的結果可以是代表空間分隔類名或數組的字符串 。

更改標記像下面HTML

標記

<table> 
    <tr ng-repeat-start="item in data.group" ng-init="$index%2==0?(color='blue'): (color='red')"> 
     <td>{{item.name}}</td>    
     <tr ng-repeat-end ng-repeat="inner in item.innerdata" ng-class="color"> 
      <td>{{inner.innername}}</td> 
     </tr> 
    </tr> 
</table> 

Fiddle

更新1

更好的解決辦法被直接使用ng-class到內納克重複

<table> 
    <tr ng-repeat-start="item in data.group"> 
     <td>{{item.name}}</td>    
     <tr ng-repeat-end ng-repeat="inner in item.innerdata" ng-class="$parent.$index%2 == 0? 'red': 'blue'"> 
      <td>{{inner.innername}}</td> 
     </tr> 
    </tr> 
</table> 

Updated 1

更新2

更準確的解決方案將是使用$even$parent

<table> 
    <tr ng-repeat-start="item in data.group"> 
     <td>{{item.name}}</td>    
     <tr ng-repeat-end ng-repeat="inner in item.innerdata" ng-class="$parent.$even? 'red': 'blue'"> 
      <td>{{inner.innername}}</td> 
     </tr> 
    </tr> 
</table> 
$odd對象

Update 2

+0

這是行得通的,我會接受它,但是你有一個想法,爲什麼'ng-class-even'不會設置這樣的變量? – Chad 2015-03-30 19:56:17

+0

'ng-class'甚至會直接需要字符串中的類值,它們不會運行任何函數。看看更新後的答案。哪個更有效率的方式 – 2015-03-30 19:58:21

+0

@Chad看看我的回答我更新了答案..顯示ng-class甚至奇怪的作品 – 2015-03-30 20:10:40