¿Puedo de alguna manera usar la construcción if-then-else (operador ternario) en la expresión angularjs, por ejemplo, tengo la función $ scope.isExists (item) que tiene que devolver un valor bool. Quiero algo como esto,
<div ng-repeater="item in items">
<div>{{item.description}}</div>
<div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>
Sé que puedo usar la función que devuelve una cadena, me interesa la posibilidad de usar la construcción if-then-else en la expresión. Gracias.
ng-switch
Respuestas:
Las expresiones angulares no admiten el operador ternario antes de 1.1.5, pero se puede emular así:
Entonces, en ejemplo, algo como esto funcionaría:
ACTUALIZACIÓN: Angular 1.1.5 agregó soporte para operadores ternarios:
fuente
<
Y>
como operadores de comparación?Puede usar el operador ternario desde la versión 1.1.5 y superior como se demuestra en este pequeño plunker (ejemplo en 1.1.5):
Por razones históricas (tal vez plnkr.co baje por alguna razón en el futuro) aquí está el código principal de mi ejemplo:
fuente
{{true?true:false}}
Puede usar ng-show fácilmente como:
Para pruebas más complejas, puede usar declaraciones ng-switch:
fuente
Esto se puede hacer en una línea.
Uso en una
td
etiqueta:fuente