Ich habe ein sehr seltsames Problem. Ich muss eine active
Klasse auf die entsprechende <li>
wenn die $scope.selectedCat == cat.id
. Die Liste wird mit ng-repeat generiert. Wenn selectedCat den Wert false hat, wird der Listeneintrag 'Alle Kategorien durchsuchen' (außerhalb von ng-repeat) auf aktiv gesetzt. setCat()
setzt den Wert des $scope.selectedCat
Variable:ng-Klasse Zustand ändert, aber nicht aktualisiert Klassen
<div id="cat-list" ng-controller="CatController">
<li ng-class="{'active': {{selectedCat == false}}}">
<a>
<div class="name" ng-click="setCat(false)" >Browse All Categories</div>
</a>
</li>
<li class="has-subcat" ng-repeat="cat in cats | filter:catsearch" ng-class="{'active': {{selectedCat == cat.id}}}">
<a>
<div cat class="name" ng-click="setCat({{cat.id}})" ng-bind-html="cat.name | highlight:catsearch"></div>
</a>
</li>
</div>
Wenn die Seite geladen wird, funktioniert alles einwandfrei (Snapshot von FireBug):
<li ng-class="{'active': true}" class="ng-scope active">
<!-- ngRepeat: cat in cats | filter:catsearch -->
<li class="has-subcat ng-isolate-scope" ng-repeat="cat in cats | filter:catsearch" ng-class="{'active': false}">
Allerdings, wenn ich $ scope.selectedClass auf einen cat.id
Wert gesetzt, Die Bedingung in ng-class wird korrekt ausgewertet, aber ng-class aktualisiert die Klassen nicht entsprechend:
<li ng-class="{'active': false}" class="ng-scope active"> <!--Right here!-->
<!-- ngRepeat: cat in cats | filter:catsearch -->
<li class="has-subcat ng-isolate-scope" ng-repeat="cat in cats | filter:catsearch" ng-class="{'active': true}">
Bitte beachten Sie t Hat in der ersten Zeile aktive Klasse bleibt festgelegt, während ng-Klasse zu false ausgewertet wird. In der letzten Zeile ist active nicht gesetzt, während ng-class als true ausgewertet wird.
Irgendwelche Ideen, warum es nicht funktioniert? Was ist die richtige Winkelform, dies zu tun?
Sie auch eine Funktion, die den Klassennamen bekommt, wenn es dynamisch ist, die helfen würden, wenn Sie benötigen Klassen wie verwenden: (-1 und hängt davon ab, etwas anderes) aktiv-1, nur concat würde nicht aktualisieren, wenn sich die "-1" zu "-2" ändert. – porfiriopartida