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 сможет мне помочь?

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

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