Con AngularJS
estoy usando ng-class
la siguiente manera:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', third:'classC', fourth:'classC'}[call.State]"/>
Me pregunto si puedo usar la if-else
expresión para hacer algo similar a esto:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', else:'classC'}[call.State]"/>
Entonces, ¿cuándo call.State
difiere first
o second
usa classC
y evita especificar cada valor?
ng-class="{'class1': ##condition1## , 'class2': ##condition2## }"
como puede ver en la pregunta anteriorpodrías probar usando una función como esa:
Luego ponga su lógica en la función misma:
Hice un violín con un ejemplo: http://jsfiddle.net/DotDotDot/nMk6M/
fuente
Tuve una situación en la que necesitaba dos declaraciones 'si' que pudieran hacerse realidad y una 'otra' o predeterminada si ninguna de las dos fuera cierta, no estoy seguro de si esto es una mejora en la respuesta de Jossef, pero me pareció más claro:
Donde value.one y value.two son verdaderos, tienen prioridad sobre la clase .else
fuente
Claramente ! Podemos hacer una función para devolver un nombre de clase CSS con el siguiente ejemplo completo.
CSS
JS
Y entonces
Puede consultar la página de códigos completa en ng-class si es un ejemplo
fuente
Las soluciones anteriores no me funcionaron para las clases con imágenes de fondo de alguna manera. Lo que hice fue crear una clase predeterminada (la que necesita en otra cosa) y establecer class = 'defaultClass' y luego ng-class = "{class1: abc, class2: xyz}"
PD: las clases que están en condición deben anular la clase predeterminada, es decir, marcada como! Important
fuente
Esta es la mejor y más confiable forma de hacer esto. Aquí hay un ejemplo simple y luego puede desarrollar su lógica personalizada:
fuente
Una solución alternativa mía es manipular una variable de modelo solo para el cambio de clase ng:
Por ejemplo, quiero alternar la clase de acuerdo con el estado de mi lista:
1) Cada vez que mi lista está vacía, actualizo mi modelo:
2) Cuando mi lista no está vacía, configuro otro estado
3) Cuando mi lista nunca se toca, quiero dar otra clase (aquí es donde se inicia la página):
3) Uso este modelo adicional en mi clase ng:
fuente
Úselo de esta manera:
fuente
Puedes probar este método:
Puede obtener detalles completos desde aquí .
fuente