Je veux le faire:
ng-hide="!globals.isAdmin && mapping.is_default"
mais l'expression évalue toujours à false
.
Je ne veux pas définir de fonction spéciale sur $scope
.
Je veux le faire:
ng-hide="!globals.isAdmin && mapping.is_default"
mais l'expression évalue toujours à false
.
Je ne veux pas définir de fonction spéciale sur $scope
.
Réponses:
Utilisez une méthode de contrôleur si vous avez besoin d'exécuter du code JavaScript arbitraire, ou vous pouvez définir un filtre qui renvoie vrai ou faux.
Je viens de tester (j'aurais dû le faire en premier), et quelque chose comme ça a ng-show="!a && b"
fonctionné comme prévu.
ng-show
/ ng-hide
n'accepte que des boolean
valeurs.
Pour les expressions complexes, il est bon d'utiliser le contrôleur et la portée pour éviter les complications.
Ci-dessous un fonctionnera (ce n'est pas une expression très complexe)
ng-show="User=='admin' || User=='teacher'"
Ici, l'élément sera affiché dans l'interface utilisateur lorsque l'une des deux conditions retourne true (opération OR).
Comme ça, vous pouvez utiliser n'importe quelle expression.
Cela fonctionnera si vous n'avez pas trop d'expressions.
Exemple: ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
Pour plus d'expressions, utilisez un contrôleur.
This will work if you do not have too many expressions.
même si je suis d'accord que cela devrait être fait dans le contrôleur à la place.
J'essaie généralement d'éviter les expressions avec ng-show et ng-hide car elles ont été conçues comme des booléens, pas des conditions. Si j'ai besoin à la fois de logique conditionnelle et booléenne, je préfère mettre dans la logique conditionnelle en utilisant ng-if comme premier contrôle, puis ajouter une vérification supplémentaire pour la logique booléenne avec ng-show et ng-hide
Howerver, si vous souhaitez utiliser un conditionnel pour ng-show ou ng-hide, voici un lien avec quelques exemples: Affichage conditionnel utilisant ng-if, ng-show, ng-hide, ng-include, ng-switch
Certaines de ces réponses ci-dessus n'ont pas fonctionné pour moi, mais cela a fonctionné. Juste au cas où quelqu'un d'autre aurait le même problème.
ng-show="column != 'vendorid' && column !='billingMonth'"
false
, vous souhaiterez peut-être vérifier ces valeurs. Il est possible que les objets "globals" et / ou "mapping" soientundefined