ng-class
es una directiva de AngularJs centrales. En el que puede utilizar "Sintaxis de cadena", "Sintaxis de matriz", "Expresión evaluada", "Operador ternario" y muchas más opciones que se describen a continuación:
ngClass usando la sintaxis de cadena
Esta es la forma más sencilla de usar ngClass. Simplemente puede agregar una variable angular a ng-class y esa es la clase que se utilizará para ese elemento.
<!-- 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!
Ejemplo de demostración de ngClass usando la sintaxis de cadena
ngClass usando la sintaxis de matriz
Esto es similar al método de sintaxis de cadenas, excepto que puede aplicar varias clases.
<!-- 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 usando expresión evaluada
Un método más avanzado para usar ngClass (y uno que probablemente usará más) es evaluar una expresión. La forma en que esto funciona es que si se evalúa una variable o expresión true
, puede aplicar una determinada clase. Si no, entonces la clase no se aplicará.
<!-- 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 }">
Ejemplo de ngClass usando expresión evaluada
ngClass usando valor
Esto es similar al método de expresión evaluado, excepto que solo puede comparar múltiples valores con la única variable.
<div ng-class="{value1:'class1', value2:'class2'}[condition]"></div>
ngClass usando el operador ternario
El operador ternario nos permite usar la taquigrafía para especificar dos clases diferentes, una si una expresión es verdadera y otra para falso. Aquí está la sintaxis básica para el operador ternario:
ng-class="$variableToEvaluate ? 'class-if-true' : 'class-if-false'">
Evaluación del primer, último o número específico
Si está utilizando la ngRepeat
directiva y que desea aplicar a la clases first
, last
o un número específico en la lista, puede utilizar las propiedades especiales de ngRepeat
. Estos incluyen $first
, $last
, $even
, $odd
, y algunos otros. Aquí hay un ejemplo de cómo usarlos.
<!-- 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>