Angular nested ng-repeat类变量

时间:2015-03-30 19:48:04

标签: angularjs ng-class angularjs-ng-class angularjs-ng-class-even angularjs-ng-class-odd

所以我有一个相当复杂的角度表,我有重复的部分都很好,但是当我设置一个ng-class-evenng-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.

1 个答案:

答案 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>

Updated 1

更新2

更准确的解决方案是使用$even的{​​{1}}或$odd对象

$parent

Update 2