Próbuję pokazać / ukryć trochę HTML za pomocą funkcji ng-show
i ng-hide
dostarczonych przez AngularJS .
Zgodnie z dokumentacją odpowiednie użycie tych funkcji jest następujące:
ngHide - {wyrażenie} - Jeśli wyrażenie jest zgodne z prawdą, element jest odpowiednio pokazywany lub ukryty. ngShow - {wyrażenie} - Jeśli wyrażenie jest zgodne z prawdą, element jest odpowiednio pokazywany lub ukryty.
Działa to w następującym przypadku użycia:
<p ng-hide="true">I'm hidden</p>
<p ng-show="true">I'm shown</p>
Jednakże, jeśli powinniśmy użyć parametru z obiektu jako wyrażenia, wtedy ng-hide
i ng-show
otrzymują poprawną true
/ false
wartość, ale wartości nie są traktowane jako wartość logiczna, więc zawsze zwracaj false
:
Źródło
<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>
Wynik
<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>
To jest błąd lub nie robię tego poprawnie.
Nie mogę znaleźć żadnych względnych informacji na temat odwoływania się do parametrów obiektu jako wyrażeń, więc miałem nadzieję, że ktoś, kto lepiej rozumie AngularJS, może mi pomóc?