Puis-je en quelque sorte utiliser la construction if-then-else (ternary-operator) dans l'expression angularjs, par exemple j'ai la fonction $ scope.isExists (item) qui doit renvoyer une valeur booléenne. Je veux quelque chose comme ça
<div ng-repeater="item in items">
<div>{{item.description}}</div>
<div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>
Je sais que je peux utiliser une fonction qui retourne une chaîne, je suis intéressé par la possibilité d'utiliser la construction if-then-else dans l'expression. Merci.
ng-switch
Réponses:
Les expressions angulaires ne prennent pas en charge l'opérateur ternaire avant la version 1.1.5, mais il peut être émulé comme ceci:
Donc, par exemple, quelque chose comme ça fonctionnerait:
MISE À JOUR: Angular 1.1.5 a ajouté la prise en charge des opérateurs ternaires:
la source
<
et en>
tant qu'opérateurs de comparaison?Vous pouvez utiliser l'opérateur ternaire depuis la version 1.1.5 et plus comme démontré dans ce petit plunker (exemple en 1.1.5):
Pour des raisons historiques (peut-être plnkr.co descendre pour une raison quelconque dans le futur) voici le code principal de mon exemple:
la source
{{true?true:false}}
Vous pouvez facilement utiliser ng-show comme:
Pour des tests plus complexes, vous pouvez utiliser des instructions ng-switch:
la source
Cela peut être fait en une seule ligne.
Utilisation dans une
td
balise:la source