Voici 2 façons différentes d'utiliser le ng-class
directive. J'ai besoin des deux, sur le même élément, mais ça ne marche pas.
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>
entraîne correctement
<div class="first">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div class="last">5</div>
http://plnkr.co/edit/tp6lgR?p=preview
<div ng-repeat="item in [1, 2, 3, 4, 5]"
ng-class=" 'count-' + ($index + 1) ">{{item}}</div>
entraîne correctement
<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>
J'ai besoin de noms de classe dynamiques (comme 'count-' + n
), mais nécessite également la syntaxe d'objet pour plusieurs classes.
Je ne peux pas simplement utiliser 2 ng-class
attributs ( http://plnkr.co/edit/OLaYke?p=preview ), seul le premier fonctionne.
Des suggestions?
Vous ne devriez pas utiliser ng-class
pour le second, utilisez
<div class="count-{{$index + 1}}" ng-class="{ first: $first, last: $last }">
Vous devez fournir à ngClass
un tableau contenant à la fois l'expression et l'objet:
<div ng-class="['count-' + ($index + 1), { first: $first, last: $last }]">
Remarque: La solution proposée dans la réponse acceptée (utilisation simultanée de la directive ngClass
et interpolation dans class
attribute) est une mauvaise pratique. Voir plus de détails ici et ici .
Si vous devez les mélanger ensemble, optez simplement pour les chaînes de caractères:
ng-class="'count-' + ($index+1) + ($first?' first':($last?' last':''))"
Ou pour une vue plus claire:
ng-class="'count-' + ($index+1) + ($first?' first':'') + ($last?' last':'')"
Il n'y a pas d'avantages connus pour utiliser class="{{exp}}"
au lieu de ng-class="exp"
, car les deux sont mis à jour lorsque la valeur de exp
change. Au contraire, aller avec le premier pourrait entraîner un gel de la page dans certains cas.
Je pense que vous pouvez séparer les attributs ng-class
avec ;
essayer:
ng-class=" 'count-' + ($index + 1) ; { first: $first, last: $last }"