AngularJS: ng-show / ng-hide не работает с интерполяцией `{{}}`
Я пытаюсь показать / скрыть некоторый HTML, используяng-show
а такжеng-hide
функции, предоставляемыеAngularJS.
Согласно документации, соответствующее использование для этих функций является следующим:
ngHide – {expression} - If the expression truthy then the element is shown or hidden respectively. ngShow – {expression} - If the expression is truthy then the element is shown or hidden respectively.
Это работает для следующего варианта использования:
<p ng-hide="true">I'm hidden</p>
<p ng-show="true">I'm shown</p>
Однако, если мы будем использовать параметр из объекта в качестве выражения, тоng-hide
а такжеng-show
даны правильныеtrue
/false
значение, но значения не рассматриваются как логическое значение, поэтому всегда возвращайте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>
Result
<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>
Это либо ошибка, либо я делаю это неправильно.
Я не могу найти какую-либо относительную информацию о ссылках на параметры объекта в виде выражений, поэтому я надеялся, что кто-нибудь с лучшим пониманием AngularJS сможет мне помочь?