Mit AngularJS
benutze ich ng-class
folgenden Weg:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', third:'classC', fourth:'classC'}[call.State]"/>
Ich frage mich, ob ich den if-else
Ausdruck verwenden kann, um etwas Ähnliches zu tun:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', else:'classC'}[call.State]"/>
Wann immer call.State
von jedem Wert abweichen first
oder ihn second
verwenden classC
und vermeiden, jeden Wert anzugeben?
ng-class="{'class1': ##condition1## , 'class2': ##condition2## }"
wie Sie in der Frage oben sehen könnenSie könnten versuchen, eine solche Funktion zu verwenden:
Dann setzen Sie Ihre Logik in die Funktion selbst:
Ich habe eine Geige mit einem Beispiel gemacht: http://jsfiddle.net/DotDotDot/nMk6M/
quelle
Ich hatte eine Situation, in der ich zwei 'if'-Aussagen brauchte, die sowohl wahr werden konnten als auch ein' else 'oder einen Standardwert, wenn beides nicht wahr war. Ich war mir nicht sicher, ob dies eine Verbesserung von Jossefs Antwort darstellt, aber es schien mir sauberer:
Wo value.one und value.two wahr sind, haben sie Vorrang vor der .else-Klasse
quelle
Klar ! Wir können eine Funktion erstellen, um einen CSS-Klassennamen mit dem folgenden vollständigen Beispiel zurückzugeben.
CSS
JS
Und dann
Sie können sich bei Beispiel auf die vollständige Codepage in der ng-Klasse beziehen
quelle
Die oben genannten Lösungen haben bei Klassen mit Hintergrundbildern irgendwie nicht funktioniert. Ich habe eine Standardklasse erstellt (die, die Sie sonst benötigen) und set class = 'defaultClass' und dann ng-class = "{class1: abc, class2: xyz}" gesetzt.
PS: Die Klassen, die sich in einem Zustand befinden, sollten die Standardklasse überschreiben, dh als! Wichtig markiert
quelle
Dies ist der beste und zuverlässigste Weg, dies zu tun. Hier ist ein einfaches Beispiel und danach können Sie Ihre benutzerdefinierte Logik entwickeln:
quelle
Eine meiner Problemumgehungen besteht darin, eine Modellvariable nur für das Umschalten der ng-Klasse zu manipulieren:
Zum Beispiel möchte ich die Klasse entsprechend dem Status meiner Liste umschalten:
1) Immer wenn meine Liste leer ist, aktualisiere ich mein Modell:
2) Immer wenn meine Liste nicht leer ist, setze ich einen anderen Status
3) Wenn meine Liste nie berührt wird, möchte ich eine andere Klasse geben (hier wird die Seite initiiert):
3) Ich benutze dieses zusätzliche Modell für meine ng-Klasse:
quelle
Verwenden Sie es so:
quelle
Sie können diese Methode ausprobieren:
Vollständige Details erhalten Sie hier .
quelle