Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
111 views
in Technique[技术] by (71.8m points)

javascript - Angular - how to add class when receiving event in template

I would like to add class when receiving a click event in template

What I do is something like this:

<div
      #myDiv
      (click)="myDiv.classList.add('my-class')"
></div>

but this does not work.

How can I make it works? Thanks

question from:https://stackoverflow.com/questions/65713087/angular-how-to-add-class-when-receiving-event-in-template

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can do the following:

<div [ngClass]="classStr"
      (click)="classStr='my-class'">
</div>

you will have to add classStr to your component (just declare it - classStr: string; inside the component)

notice that this will only add the class once, not toggle it, if you want to toggle, you will have to do something like:

<div [ngClass]="classStr"
   (click)="classStr = classStr === 'my-class' ? '' : 'my-class' ">
</div>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...