Hallo Ich habe ein Objekt mit einer Liste innerhalb Ich möchte in meinem html mit einer ng-Wiederholung Schleife. Die Liste ist Schlüsselwert und der Wert ist wahr oder falsch. In meinem HTML habe ich ein div mit einer Klasse und einer eigenen Hintergrundfarbe. Wenn ich also die ng-Wiederholung mache, würde ich gerne prüfen, ob der Wert in der Liste falsch ist und eine neue Klasse mit einer neuen Hintergrundfarbe hinzufügen. Ich habe für diese ng-Klasse einen Ausdruck benutzt, aber es funktioniert nicht. Das ist mein Ziel:Hinzufügen ng-Klasse mit Ausdruck false
$scope.list = [
{
"Name" : "Jacob",
"Properties" : {
"P1": true,
"P2": true,
"P3": false
}
},
{
"Name" : "James",
"Properties" : {
"P1" : false,
"P2" : true,
"P3" : true
}
},
{
"Name" : "Hector",
"Properties" : {
"P1" : false,
"P2" : false,
"P3" : true
}
}
]
Dann habe ich folgen html:
<div ng-repeat="item in list">
<div class="myContainer">
<div class="cMyBox cColor1" ng-class="{cWhite: !item.Properties.P1}"></div>
<div class="cMyBox cColor2" ng-class="{cWhite: !item.Properties.P2}"></div>
<div class="cMyBox cColor3" ng-class="{cWhite: !item.Properties.P3}"></div>
</div>
</div>
Und das ist mein CSS:
.myContainer {display: flex; flex-direction: row;}
.cMyBox {width: 20px; height: 20px; background-color: blue;}
.cWhite{background-color: white;}
.cColor1 {background-color: red;}
.cColor2 {background-color: blue;}
.cColor3 {background-color: green;}
Und in dem Moment es does'nt die Farbe ändern, wenn es ist falsch. Ich habe es auch mit ng-class="{cWhite: item.Properties.P1 == false}"
versucht.
Ich habe diesen Weg verwendet, um eine Klasse mit ng-Klasse + Ausdruck ein paar Mal hinzuzufügen, aber jetzt funktioniert es nicht. Vielleicht ist meine Wiederholung oder meine Liste falsch.
Danke!
Hallo und danke für deine Antwort! In meinem ursprünglichen Code ist das Komma nach dem Namen, es war nur ein Tippfehler hier, als ich diese Frage schrieb! Auch mit dem Komma funktioniert es nicht richtig ... – MrBuggy
@MrBuggy möglicherweise fehlen einige Dateien, die nicht geladen sind. Ich habe versucht, deinen Code zu verwenden. Es hat perfekt funktioniert. Ich denke, du musst es noch einmal versuchen. –
Hallo ich habe den Fehler: In meinem Originalcode habe ich hier einen Unterschied gemacht: Ich habe in jedem div "cMyBox" einen Styleattr mit einer anderen rgb-Farbe direkt in das Tag eingefügt. Wenn ich es für jede der drei Divs in einer Klasse entferne, funktioniert es. Wenn ich es direkt im Tag mache, hat es noch niemanden eine Idee warum. Danke – MrBuggy