所以我有一个相当复杂的角度表,我有重复的部分都很好,但是当我设置一个ng-class-even
和ng-class-odd
的变量时,变量似乎不会持久。也许我误解了ng-repeat
的范围,但我很难过。
我的重复看起来像:
<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 :(得分:3)
ng-class-even
&amp; ng-class-odd
将查看当前的ng-repeat
$ index对象,并决定应该为class属性赋予哪个值。
ng-class-even
/ng-class-odd
表达&amp;评估结果可以是字符串 表示空格分隔的类名或数组。
更改标记,如下面的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
内部ng-repeat
<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>
更新2
更准确的解决方案是使用$even
的{{1}}或$odd
对象
$parent