在表内的行上使用ng-repeat和ng-class
我正在使用AngularJS,我想要得到的效果会类似于这会产生什么,假设它会工作(它不)。
视图
<tr ng-repeat='person in people' ng-class='rowClass(person)'> <td>.....info about person...</td> <td>.....info about person...</td> <td>.....info about person...</td> </tr>
调节器
$scope.rowClass = function(person){ ...return some value based upon some property of person... }
我意识到这段代码不会工作,因为person
不可用于ng-class
因为它只对每行内的对象可用。 该代码是要了解我正在尝试做什么:即。 我想能够有使用ng-repeat
创build的表行,这些行的类也是基于一个条件,这个条件依赖于访问行本身的作用域特征,例如。 person
。 我意识到我可以在列上添加ng-class,但这很无聊。 任何人有更好的想法?
这应该实际上工作正常。 人们应该在tr元素和子元素上可用,因为他们共享相同的范围。
这似乎对我很好:
<table> <tr ng-repeat="person in people" ng-class="rowClass(person)"> <td>{{ person.name }}</td> </tr> </table>
其实,你可以在你指的上下文中使用“人物”。 它存在于正在重复的项目以及其中的任何项目。 原因是特定元素上的任何指令都共享相同的$ scope对象。 ng-repeat的优先级是1000,所以它已经创build了它的$范围并且放入了“person”,所以“person”对ng类是可用的。
看到这个Plnkr: