ngClass - создание имени класса, содержащего угловое выражение
Я хотел бы создать имена классов, основанные на оценке углового выражения, но кажется, что angular удаляет эти выражения из в конечном итоге скомпилированных классов. При переборе ячеек используйте следующий код:
<td ng-class="{'label{{cell.count}}': !!cell.count}"></td>
Моя цель состоит в том, чтобы, когда cell.count = 1, результирующий класс был "label1", когда cell.count = 2, "label2" и т. Д. На практике происходит то, что angular отбрасывает выражение в конечном классе. как!!cell.count, я получаю класс "label" независимо от количества. Как мне этого добиться?
2 ответа
Попробуй это:
<td ng-class="{'label'+cell.count: !!cell.count}"></td>
Если это становится слишком сложным, вы также можете переместить весь объект в функцию в области видимости.
<td ng-class="getCellClass()"></td>
а потом:
$scope.getCellClass = function() { ... }
Ваша проблема в том, что {{...}}
замена здесь не подходит Вы должны использовать угловое выражение для создания объекта или, если вы вызываете метод в области видимости, вы можете сделать любой javascript, который вам нужен для его создания.
Вы когда-нибудь пробовали: <td ng-class="'label' + cell.count"></td>
- просто не использовать фигурные скобки работает для меня в моем проекте (угловой 1.5).
Я была такая же проблема. Мне удалось решить это так:
<td ng-class="{['label' + cell.count]: !!cell.count}"></td>