AngularJS Несколько классов с использованием выражения

У меня есть таблица, в которой мне нужно применить два разных класса, используя выражения. 1-й класс применяется на основе следующего выражения. {'Up':'class-up', 'Down':'class-down'}[a.status] и 2-й класс применяется на основании bold: !a.read

Классы здесь class-up, class-down, bold. Так как же должно быть оформлено выражение? Я старался:

<tr ng-repeat="a in all" ng-class="{{'Up':'class-up', 'Down':'class-down'}[a.status],bold: !a.read}">

<tr ng-repeat="a in all" ng-class="{'Up':'class-up', 'Down':'class-down'}[a.status],bold: !a.read">

Но я продолжаю получать ошибки в консоли. Каков правильный формат для применения этих классов на основе заданных выражений


person Aniket Sinha    schedule 04.07.2014    source источник
comment
разве это не похоже на пример в документации? docs.angularjs.org/api/ng/directive/ngClass   -  person Eduard Gamonal    schedule 04.07.2014
comment
Да, я пробовал такие. Но я не могу заставить его работать. Проблема возникает, когда первое выражение не зависит напрямую от переменной. {'Up':'class-up', 'Down':'class-down'}[a.status] . Здесь a.status возвращает Up или Down в качестве ответа, который, в свою очередь, применяет классы class-up и class-down соответственно.   -  person Aniket Sinha    schedule 04.07.2014
comment
Вам вообще нужно такое сложное выражение? Можете ли вы просто использовать что-то вроде: ng-class="{ 'class-up': a.status === 'Up', 'class-down': a.status === 'Down', 'bold': !item.read }"   -  person Paolo Moretti    schedule 04.07.2014
comment
Это последний подход, который я пробовал (работает), т.е. разделение на статус «Вверх» и «Вниз» на 2 компонента. Я подумал, может быть, статус можно оценить в одном выражении вместо двух.   -  person Aniket Sinha    schedule 04.07.2014


Ответы (1)


С пояснением из вашего комментария:

<tr ng-repeat="a in all" ng-class="{'class-up': a.status=='up', 'class-down': a.status=='down', 'bold': !a.read}">hello world</tr>
person przno    schedule 04.07.2014