AngularJS: ng-show / ng-hide não funciona com a interpolação `{{}}`

Estou tentando mostrar / ocultar algum HTML usando ong-show eng-hide funções fornecidas porAngularJS.

De acordo com a documentação, o respectivo uso para essas funções é o seguinte:

ngHide - {expressão} - Se a expressão for definida, o elemento será mostrado ou oculto, respectivamente. ngShow - {expression} - Se a expressão for truthy, o elemento será mostrado ou oculto, respectivamente.

Isso funciona para o seguinte usecase:

<p ng-hide="true">I'm hidden</p>
<p ng-show="true">I'm shown</p>

No entanto, devemos usar um parâmetro de um objeto como a expressão, em seguida, ong-hide eng-show são dadas a corretatrue/false valor, mas os valores não são tratados como um booleano então sempre retornarfalse:

Fonte

<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>

Resultado

<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>

Isso é um bug ou não estou fazendo isso corretamente.

Não consigo encontrar nenhuma informação relativa na referência de parâmetros de objeto como expressões, então eu estava esperando que alguém com um melhor entendimento do AngularJS possa me ajudar?

questionAnswers(7)

yourAnswerToTheQuestion