Якщо ви не хочете вводити імена класів CSS в Controller, як я, ось старий трюк, який я використовую з часу pre-v1 днів. Ми можемо написати вираз, який оцінює безпосередньо вибране ім'я класу , не потрібні спеціальні директиви:
ng:class="{true:'selected', false:''}[$index==selectedIndex]"
Зверніть увагу на старий синтаксис з двокрапкою.
Існує також новий кращий спосіб застосування класів умовно, наприклад:
ng-class="{selected: $index==selectedIndex}"
Angular тепер підтримує вирази, які повертають об'єкт. Кожне властивість (ім'я) цього об'єкта зараз розглядається як ім'я класу і застосовується залежно від його значення.
Однак ці способи функціонально не рівні. Ось приклад:
ng-class="{admin:'enabled', moderator:'disabled', '':'hidden'}[user.role]"
Таким чином, ми могли б повторно використовувати існуючі класи CSS, в основному зіставивши властивість моделі з назвою класу і в той же час утримати класи CSS від коду контролера.