1

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

所以,我希望在行循环时设置颜色。这是一个带有示例设置的小提琴。

4

1 回答 1

3

ng-class-even&ng-class-odd将查看当前的ng-repeat$index 对象并决定应该为类属性赋予哪个值。

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>

小提琴

更新 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>

更新 1

更新 2

更准确的解决方案是使用$even$odd对象$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>

更新 2

于 2015-03-30T19:54:18.220 回答