ng-class
Директива основных AngularJs. В котором вы можете использовать «Синтаксис строки», «Синтаксис массива», «Выраженное выражение», «Тернарный оператор» и многие другие параметры, описанные ниже:
ngClass Использование строкового синтаксиса
Это самый простой способ использовать ngClass. Вы можете просто добавить переменную Angular в ng-class, и это будет класс, который будет использоваться для этого элемента.
<!-- whatever is typed into this input will be used as the class for the div below -->
<input type="text" ng-model="textType">
<!-- the class will be whatever is typed into the input box above -->
<div ng-class="textType">Look! I'm Words!
Демо-пример ngClass с использованием строкового синтаксиса
ngClass Использование синтаксиса массива
Это похоже на метод строкового синтаксиса, за исключением того, что вы можете применять несколько классов.
<!-- both input boxes below will be classes for the div -->
<input type="text" ng-model="styleOne">
<input type="text" ng-model="styleTwo">
<!-- this div will take on both classes from above -->
<div ng-class="[styleOne, styleTwo]">Look! I'm Words!
ngClass Использование оцененного выражения
Более сложный метод использования ngClass (и тот, который вы, вероятно, будете использовать чаще всего) - это оценка выражения. Это работает так: если переменная или выражение вычисляются true
, вы можете применить определенный класс. Если нет, то класс не будет применен.
<!-- input box to toggle a variable to true or false -->
<input type="checkbox" ng-model="awesome"> Are You Awesome?
<input type="checkbox" ng-model="giant"> Are You a Giant?
<!-- add the class 'text-success' if the variable 'awesome' is true -->
<div ng-class="{ 'text-success': awesome, 'text-large': giant }">
Пример использования ngClass с использованием оцененного выражения
ngClass Используя Значение
Это похоже на метод оцененного выражения, за исключением того, что вы можете просто сравнить несколько значений с единственной переменной.
<div ng-class="{value1:'class1', value2:'class2'}[condition]"></div>
ngClass Использование тернарного оператора
Тернарный оператор позволяет нам использовать сокращение для указания двух разных классов: один для выражения true и один для false. Вот основной синтаксис для троичного оператора:
ng-class="$variableToEvaluate ? 'class-if-true' : 'class-if-false'">
Оценка первого, последнего или определенного номера
Если вы используете ngRepeat
директиву , и вы хотите применить классы к first
, last
или определенный номер в списке, вы можете использовать специальные свойства ngRepeat
. К ним относятся $first
, $last
, $even
, $odd
, и некоторые другие. Вот пример того, как их использовать.
<!-- add a class to the first item -->
<ul>
<li ng-class="{ 'text-success': $first }" ng-repeat="item in items">{{ item.name }}</li>
</ul>
<!-- add a class to the last item -->
<ul>
<li ng-class="{ 'text-danger': $last }" ng-repeat="item in items">{{ item.name }}</li>
</ul>
<!-- add a class to the even items and a different class to the odd items -->
<ul>
<li ng-class="{ 'text-info': $even, 'text-danger': $odd }" ng-repeat="item in items">{{ item.name }}</li>
</ul>