ng-class
est une directive des AngularJ de base. Dans lequel vous pouvez utiliser "String Syntax", "Array Syntax", "Evaluated Expression", "Ternary Operator" et bien d'autres options décrites ci-dessous:
ngClass à l'aide de la syntaxe de chaîne
C'est la manière la plus simple d'utiliser ngClass. Vous pouvez simplement ajouter une variable angulaire à ng-class et c'est la classe qui sera utilisée pour cet élément.
<!-- 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!
Exemple de démonstration de ngClass à l'aide de la syntaxe de chaîne
ngClass à l'aide de la syntaxe de tableau
Ceci est similaire à la méthode de syntaxe de chaîne, sauf que vous pouvez appliquer plusieurs classes.
<!-- 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 utilisant l'expression évaluée
Une méthode plus avancée d'utilisation de ngClass (et celle que vous utiliserez probablement le plus) consiste à évaluer une expression. La façon dont cela fonctionne est que si une variable ou une expression est évaluée true
, vous pouvez appliquer une certaine classe. Sinon, la classe ne sera pas appliquée.
<!-- 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 }">
Exemple de ngClass utilisant l'expression évaluée
ngClass utilisant la valeur
Ceci est similaire à la méthode d'expression évaluée, sauf que vous pouvez simplement comparer plusieurs valeurs avec la seule variable.
<div ng-class="{value1:'class1', value2:'class2'}[condition]"></div>
ngClass à l'aide de l'opérateur ternaire
L'opérateur ternaire nous permet d'utiliser des raccourcis pour spécifier deux classes différentes, une si une expression est vraie et une pour faux. Voici la syntaxe de base de l'opérateur ternaire:
ng-class="$variableToEvaluate ? 'class-if-true' : 'class-if-false'">
Évaluation du premier, du dernier ou du numéro spécifique
Si vous utilisez la ngRepeat
directive et que vous souhaitez appliquer des classes au first
, last
ou un numéro spécifique dans la liste, vous pouvez utiliser les propriétés particulières de ngRepeat
. Ceux - ci comprennent $first
, $last
, $even
, $odd
, et quelques autres. Voici un exemple d'utilisation.
<!-- 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>