Existe-t-il un moyen d'écrire la logique en ligne dans un modèle dans AngularJS.
Ce que je veux faire, c'est quelque chose comme ça:
<div ng-repeat="item in items">
{{item.isValid ? 'Valid item' : 'Invalid Item'}}
</div>
Vous pouvez utiliser &&
et ||
, qui finira par fonctionner comme les opérateurs ternaires.
{{item.isValid && 'Valid' || 'Invalid' }}
EDIT: Angular introduit les opérateurs ternaires dans 1.1.5:
{{item.isValid ? 'Valid' : 'Invalid' }}
Vous ne pouvez pas utiliser de conditions dans angular. Et, si votre contenu div est léger (juste du texte), vous pouvez utiliser ng-bind (cela vous évite également d'avoir un élément span supplémentaire). ):
<div ng-repeat="item in items" ng-bind="{true: 'Valid item', false: 'Invalid item'}[item.isValid]"></div>
Vous pouvez insérer un span avec ng-show pour afficher votre texte conditionnel
Exemple
<div ng-repeat="item in items">
<span ng-show="item.isValid">
Valid item
</span>
<span ng-show="!item.isValid">
Invalid item
</span>
</div>