Hier sind zwei verschiedene Möglichkeiten, die ng-class
Direktive zu verwenden. Ich brauche sie beide, auf demselben Element, aber das funktioniert nicht.AngularJS - Wie füge ich mehrere ng-class Direktiven hinzu?
ein Objekt in ng-Klasse verwenden
http://plnkr.co/edit/uZNK7I?p=preview
<div ng-repeat="item in [1, 2, 3, 4, 5]"
ng-class="{ first: $first, last: $last }">{{item}}</div>
Ergebnisse korrekt in
<div class="first">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div class="last">5</div>
einen Ausdruck in ng-Klasse verwenden
http://plnkr.co/edit/tp6lgR?p=preview
<div ng-repeat="item in [1, 2, 3, 4, 5]"
ng-class=" 'count-' + ($index + 1) ">{{item}}</div>
Ergebnisse richtig in
<div class="count-1">1</div>
<div class="count-2">2</div>
<div class="count-3">3</div>
<div class="count-4">4</div>
<div class="count-5">5</div>
Nun, wie sie etwa zusammen verwenden?
Ich brauche dynamische Klassennamen (wie 'count-' + n
), aber auch die Objekt-Syntax für mehrere Klassen.
Ich kann nicht einfach 2 ng-class
Attribute (http://plnkr.co/edit/OLaYke?p=preview) verwenden, nur die erste funktioniert.
Irgendwelche Vorschläge?
Dies scheint zu funktionieren (http://plnkr.co/edit/OLaYke?p=preview), obwohl ich nicht sicher bin über ie8 (und leider plinkr funktioniert nicht in ie8, und ich habe nicht Zeit, dies einzurichten und zu testen) –
Nach eckigen Dokumenten vorgeschlagene Lösung ist eine schlechte Praxis: https://docs.angularjs.org/api/ng/directive/ngClass#known-issues Siehe meine Antwort unten für empfohlenen Weg es zu tun –
@MaximKulikov - Es sagt nicht, dass irgendwo, es heißt, keine Interpolation zu verwenden. '{{}}' unterscheidet sich von der oben angezeigten Syntax. – tymeJV