2014-10-16 2 views
0

У меня есть таблица, где строки генерируются с помощью AngularJS ngRpeat:применить ngClass к элементу, где объявлен ngRepeat

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

массив выглядит немного как это:

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

Теперь, если я хотел применить ng-class к строке таблицы, основываясь на этом ng-repeat? Я бы это сделал, хотя это могло бы работать:

<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': '' "' –

+1

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

+0

@ Second2Нолько спасибо, мне просто не хватало этих скобок. Если вы хотите опубликовать это как ответ, я буду принимать его как правильный синтаксис и самый простой метод. – Coop

ответ

0

Он должен быть в состоянии сделать это как в this кейс. Вы могли бы написать функцию в свой контроллеры объема, который возвращает соответствующий класс:

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

и затем вызвать его, как этот

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

Спасибо за ваш ответ. Хотя этот метод может работать, просто добавление скобок работало для меня и было проще. – Coop

Смежные вопросы