J'essaie d'afficher ou de masquer du HTML à l'aide de la fonction ng-show
et ng-hide
les fonctions fournies par AngularJS .
Selon la documentation, l'utilisation respective de ces fonctions est la suivante :
ngHide - {expression} - Si l'expression est vraie, l'élément est affiché ou caché respectivement. ngShow - {expression} - Si l'expression est vraie, l'élément est affiché ou caché respectivement.
Cela fonctionne pour le cas d'utilisation suivant :
<p ng-hide="true">I'm hidden</p>
<p ng-show="true">I'm shown</p>
Cependant, si l'on utilise un paramètre d'un objet comme expression, alors la fonction ng-hide
et ng-show
reçoivent le bon true
/ false
mais les valeurs ne sont pas traitées comme un booléen et retournent toujours false
:
Source :
<p ng-hide="{{foo.bar}}">I could be shown, or I could be hidden</p>
<p ng-show="{{foo.bar}}">I could be shown, or I could be hidden</p>
Résultat
<p ng-hide="true">I should be hidden but I'm actually shown</p>
<p ng-show="true">I should be shown but I'm actually hidden</p>
Soit il s'agit d'un bogue, soit je ne fais pas les choses correctement.
Je ne trouve aucune information relative au référencement des paramètres d'objets en tant qu'expressions. J'espérais donc que quelqu'un ayant une meilleure compréhension d'AngularJS pourrait m'aider ?