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