Je veux le faire:
ng-hide="!globals.isAdmin && mapping.is_default"
mais l'expression est toujours évaluée à false
.
Je ne veux pas définir de fonction spéciale sur $scope
.
Utilisez une méthode de contrôleur si vous devez exécuter du code JavaScript arbitraire ou définir un filtre qui renvoie true ou false.
Je viens de tester (j'aurais dû le faire en premier) et quelque chose comme ng-show="!a && b"
a fonctionné comme prévu.
ng-show
/ng-hide
accepte uniquement les valeurs boolean
.
Pour les expressions complexes, il est bon d’utiliser le contrôleur et le scope pour éviter les complications.
En dessous on travaillera (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 lorsqu'une des deux conditions renvoie la valeur true (opération OR).
Comme cela, 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 toute autre expression, utilisez un contrôleur.
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 et non comme des conditions. Si j'ai besoin d'une logique à la fois conditionnelle et booléenne, je préfère mettre la logique conditionnelle en utilisant ng-if comme première vérification, puis ajouter une vérification supplémentaire pour la logique booléenne avec ng-show et ng-hide
Cependant, si vous souhaitez utiliser une condition 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'"