2017-06-14 4 views
0

En Angulaire, je voudrais utiliser ngClass et cliquer sur l'événement pour basculer la classe. J'ai regardé en ligne mais certains sont angulaires1 et il n'y a pas d'instruction ou d'exemple clair. Toute aide sera très appréciée!Angulaire ngClass et événement click pour la classe de basculement

En HTML, je donne les résultats suivants:

<div class="my_class" (click)="clickEvent($event)" ngClass="{'active': toggle}">     
    Some content 
</div> 

En .ts:

clickEvent(event){ 
    //Haven't really got far 
    var targetEle = event.srcElement.attributes.class;   
}  
+0

Est-ce angulaire 1 ?? Ne semble pas comme ça –

+0

C'est angulaire2. Je vais changer le titre. –

+1

Le titre est correct. J'ai changé les balises pour votre question –

Répondre

4

Cela devrait travailler pour vous:

<div class="my_class" (click)="clickEvent()" 
    [ngClass]="status ? 'success' : 'danger'">     
    Some content 
</div> 

status: boolean = false; 
clickEvent(){ 
    this.status = !this.status;  
} 
+0

Merci! J'ai appris quelque chose! =) –

+0

Juste une question rapide. Le premier clic ajoute la classe, mais le deuxième clic ne semble pas fonctionner. A partir de votre code, je ne vois pas comment cela change le 'status' en' false'. –

+0

nvm. deviner. Merci! –

1

ngClass doivent être placées entre crochets car cela est une propriété de liaison. Essayez ceci:

<div class="my_class" (click)="clickEvent($event)" [ngClass]="{'active': toggle}">     
    Some content 
</div> 

Dans votre composant:

 //define the toogle property 
    private toggle : boolean = false; 

    //define your method 
    clickEvent(event){ 
     //if you just want to toggle the class; change toggle variable. 
     this.toggle != this.toggle;  
    } 

espoir qui aide.

+0

Génial. Merci! –

+0

Content de pouvoir aider. Marquez la réponse comme acceptée si cela a fonctionné pour vous. –

0

Les variables peuvent être activées à partir du modèle comme si -

<div class="my_class" (click)="status=!status" 
    [ngClass]="status ? 'success' : 'danger'">     
    Some content 
</div> 

Cela fonctionnera sans code supplémentaire dans le fichier ts.