2

我正在尝试开发一个非常通用的表格输出器 - 没有固定的行数或列数。因此,我有嵌套的 ng-repeat 属性,例如:

<table>
    <tr ng-repeat="row in rowList">
        <td ng-repeat="col in colList">{{printCell(row,col)}}</td>
    </tr>
</table>

它工作得很好!直到我尝试使用ng-class-evenng-class-odd相应地更改行的背景颜色。

如果我将ng-class-***语句放在td标签上,我会得到交替的列颜色。

如果我将这些ng-class-***语句放在tr标签上,我不会得到任何班级分配——它们都保持默认。

我想要交替的行颜色。我该怎么做呢?

编辑:

请删除这个,有人吗?事实证明,问题在于我的 css 类指定该类设置在 td 标记上。

4

1 回答 1

26

ng-class-oddand的值ng-class-even可以是字符串:ng-class-odd="'myClass'"或表达式ng-class-odd="{myClass: boolExpression}"

还:

角 1.2+:ng-class="{even: $even, odd: $odd}"

<table>
    <tr ng-repeat="row in rowList" ng-class="{even: $even, odd: $odd}">
        <td ng-repeat="col in colList">{{printCell(row,col)}}</td>
    </tr>
</table>
<hr />

角度 < 1.2ng-class="{even: !($index%2), odd: ($index%2)}"

<table>
    <tr ng-repeat="row in rowList" ng-class="{even: !($index%2), odd: ($index%2)}">
        <td ng-repeat="col in colList">{{printCell(row,col)}}</td>
    </tr>
</table>

示例:http: //jsfiddle.net/TheSharpieOne/JYn7S/1/

于 2013-09-10T18:16:01.573 回答