Les expressions complexes sont-elles possibles dans ng-hide / ng-show?

Je veux le faire:

ng-hide="!globals.isAdmin && mapping.is_default" 

mais l’expression est toujours 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 (devrait avoir fait cela en premier), et quelque chose comme ng-show="!a && b" fonctionné comme prévu.

ng-show / ng-hide n’accepte que boolean valeurs boolean .

Pour les expressions complexes, il est bon d’utiliser le contrôleur et la 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 lorsque l’une des deux conditions retournera 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.

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 des conditionnels. Si j’ai besoin à la fois de la logique conditionnelle et booléenne, je préfère mettre la logique conditionnelle en utilisant ng-if comme première vérification, puis append une vérification supplémentaire pour la logique booléenne avec ng-show et ng-hide

Howerver, si vous voulez utiliser un conditionnel pour ng-show ou ng-hide, voici un lien avec quelques exemples: Affichage conditionnel avec ng-if, ng-show, ng-hide, ng-include, ng-switch

Certaines de ces réponses ci-dessus ne fonctionnaient pas pour moi, mais cela a été le cas. Juste au cas où quelqu’un d’autre aurait le même problème.

 ng-show="column != 'vendorid' && column !='billingMonth'"