J'essaie d'ajouter plusieurs valeurs dans * ngClass, ce qui fonctionnait sur les versions alpha précédentes et ne semble pas fonctionner maintenant sur angular2 beta:
<i *ngClass="['fa','fa-star']"></i>
Cela produit une erreur:
EXCEPTION: TypeError: Impossible de lire la propriété 'ajouter' de non défini dans [['fa', 'fa-star'] dans PostView @ 30: 27]
Qu'est-ce que j'oublie ici?
Vous devez utiliser des crochets pour créer une liaison de propriété. Voir ce plunk
<i [ngClass]="['fa','fa-star']"></i>
Si vous n'allez pas changer ces classes dynamiquement, alors utiliser ngClass
est exagéré. Vous pouvez simplement utiliser class="fa fa-star"
dans votre modèle.
ngClass
doit être utilisé lorsque vous souhaitez les activer et les désactiver dynamiquement. Il y a un exemple dans les documents:
Votre composant aurait une méthode:
setClasses() {
return {
saveable: this.canSave, // true
modified: !this.isUnchanged, // false
special: this.isSpecial, // true
}
}
puis utilisez ngClass
dans votre modèle comme ceci:
<div [ngClass]="setClasses()">This div is saveable and special</div>
Vous pouvez également créer une chaîne contenant plusieurs classes.
Dans ce cas additionalClass est une variable @Input contenant le nom de classe et active est un booléen qui définit la classe active
<div [ngClass]="(additionalClass + ' ' + (active ? 'active' : ''))"></div>