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