Ich möchte das tun:
ng-hide="!globals.isAdmin && mapping.is_default"
aber der Ausdruck wird immer zu ausgewertet false
.
Ich möchte keine Sonderfunktion für definieren $scope
.
Ich möchte das tun:
ng-hide="!globals.isAdmin && mapping.is_default"
aber der Ausdruck wird immer zu ausgewertet false
.
Ich möchte keine Sonderfunktion für definieren $scope
.
false
, möchten Sie diese Werte möglicherweise noch einmal überprüfen. Es ist möglich, dass die "Globals" - und / oder "Mapping" -Objekteundefined
Antworten:
Verwenden Sie eine Controller-Methode, wenn Sie beliebigen JavaScript-Code ausführen müssen, oder definieren Sie einen Filter, der true oder false zurückgibt.
Ich habe gerade getestet (hätte das zuerst tun sollen) und so etwas hat wie
ng-show="!a && b"
erwartet funktioniert.quelle
ng-show
/ng-hide
akzeptiert nurboolean
Werte.Für komplexe Ausdrücke empfiehlt es sich, Controller und Scope zu verwenden, um Komplikationen zu vermeiden.
Unten wird man arbeiten (Es ist kein sehr komplexer Ausdruck)
Hier wird das Element in der Benutzeroberfläche angezeigt, wenn eine der beiden Bedingungen true zurückgibt (ODER-Operation).
So können Sie beliebige Ausdrücke verwenden.
quelle
Dies funktioniert, wenn Sie nicht zu viele Ausdrücke haben.
Beispiel:
ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
Verwenden Sie für mehr Ausdrücke als diesen einen Controller.
quelle
This will work if you do not have too many expressions.
obwohl ich damit einverstanden bin, dass sie stattdessen im Controller durchgeführt werden sollte.Ich versuche im Allgemeinen, Ausdrücke mit ng-show und ng-hide zu vermeiden, da sie als Boolesche Werte und nicht als Bedingungen konzipiert wurden. Wenn ich sowohl bedingte als auch boolesche Logik benötige, ziehe ich es vor, die bedingte Logik mit ng-if als erste Prüfung einzufügen und dann eine zusätzliche Prüfung für die boolesche Logik mit ng-show und ng-hide hinzuzufügen
Wenn Sie jedoch eine Bedingung für ng-show oder ng-hide verwenden möchten, finden Sie hier einen Link mit einigen Beispielen: Bedingte Anzeige mit ng-if, ng-show, ng-hide, ng-include, ng-switch
quelle
Einige dieser obigen Antworten haben bei mir nicht funktioniert, aber das hat funktioniert. Nur für den Fall, dass jemand anderes das gleiche Problem hat.
quelle