Ich versuche, HTML mit den von AngularJS bereitgestellten Funktionen ng-show
und ein- / auszublenden .ng-hide
Laut Dokumentation ist die jeweilige Verwendung für diese Funktionen wie folgt:
ngHide - {Ausdruck} - Wenn der Ausdruck wahr ist, wird das Element angezeigt bzw. ausgeblendet. ngShow - {Ausdruck} - Wenn der Ausdruck wahr ist, wird das Element angezeigt bzw. ausgeblendet.
Dies funktioniert für den folgenden Anwendungsfall:
<p ng-hide="true">I'm hidden</p>
<p ng-show="true">I'm shown</p>
Wenn wir jedoch einen Parameter aus einem Objekt als Ausdruck verwenden, erhalten die ng-hide
und ng-show
den korrekten true
/ false
Wert, aber die Werte werden nicht als Boolescher Wert behandelt. Geben Sie daher immer Folgendes zurück false
:
Quelle
<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>
Ergebnis
<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>
Dies ist entweder ein Fehler oder ich mache das nicht richtig.
Ich kann keine relativen Informationen zum Verweisen auf Objektparameter als Ausdrücke finden, also hoffte ich, dass jemand mit einem besseren Verständnis von AngularJS mir helfen kann?
<p ng-show="foo.bar === 'test'">I could be shown, or I could be hidden</p>
Sie können nicht verwenden,
{{}}
wenn Sie Winkelanweisungen zum Binden mit verwenden,ng-model
aber zum Binden von Nicht-Winkelattributen müssten Sie verwenden{{}}
.Z.B:
quelle
Versuchen Sie, den Ausdruck mit folgenden Zeichen zu versehen:
quelle
foo.bar = true
sollte seinscope.foo.bar = true
, um den Wert vonfoo.bar
$scope.$apply
Da
ng-show
es sich meiner Meinung nach um ein Winkelattribut handelt, müssen wir die Bewertungsblumenklammern ({{}}
) nicht einfügen.Für Attribute wie müssen
class
wir die Variablen mit Bewertungsblumenklammern ({{}}
) kapseln .quelle
quelle
Entfernen Sie {{}} Klammern um foo.bar, da Winkelausdrücke in Winkelanweisungen nicht verwendet werden können.
Für mehr Informationen : https://docs.angularjs.org/api/ng/directive/ngShow
Beispiel
quelle
Wenn Sie ein Element basierend auf dem Status eines {{Ausdrucks}} ein- / ausblenden möchten, können Sie Folgendes verwenden
ng-switch
:Der Absatz wird angezeigt, wenn foo.bar true ist, und ausgeblendet, wenn false.
quelle