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 даны правильные /truefalse значение, но значения не рассматриваются как логическое значение, поэтому всегда возвращайте: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 сможет мне помочь?

Ответы на вопрос(7)

Ваш ответ на вопрос