2014-10-16 59 views
0

我哪里行使用AngularJS ngRpeat生成的表格:如果我有什么适用ngClass到ngRepeat声明元素

$scope.divison = [ 
    { 
    name: "John Doe", 
    score: "10", 
    goingUp : true 
    }, 
    { 
    name: "Bob Marley", 
    score: "20" 
    } 
]; 

现在:

<tr ng-repeat="player in division"> 
    <td>{{player.name}}</td> 
    <td>{{player.score}}</td> 
</tr> 

数组看起来有点像这样想要基于特定的ng-repeatng-class应用于表格行?我会虽然这可能会工作:

<tr ng-repeat="player in division" ng-class="'goingUp' : player.goingUp"> 
    <td>{{player.name}}</td> 
    <td>{{player.score}}</td> 
</tr> 

唉这是行不通的。可能是因为ng级不在这个重复元素之内。我怎样才能得到这个工作?

+0

尝试:'ngclass =” (player.goingUp)?'goingUp':''“' – 2014-10-16 13:11:52

+1

ng-class =”{'goingUp':player.goingUp}“ – Second2None 2014-10-16 13:17:41

+0

@ Second2None谢谢,我只是想念那些括号。如果你想发布这个答案,我会接受它作为正确的语法和最简单的方法。 – Coop 2014-10-16 13:22:36

回答

1

正确的语法是

ng-class="{'goingUp' : player.goingUp}" 
0

它应该能够这样做,就像在this的情况下一样。你可以在你的控制器的范围,返回相应的类编写一个函数:

$scope.isGoingUp = function(player) 
{ 
    if (player.goingUp) return "goingUp"; 
    return "notGoingUp"; 
} 

,然后调用它像这样

ng-class="isGoingUp(player)" 
+0

感谢您的回答。虽然这种方法可能会起作用,但简单地加入括号可以为我工作,而且更容易。 – Coop 2014-10-16 13:34:47