首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于切换类的Angular ngClass和单击事件

用于切换类的Angular ngClass和单击事件
EN

Stack Overflow用户
提问于 2017-06-14 12:35:29
回答 7查看 221.8K关注 0票数 70

在Angular中,我想使用ngClass和单击事件来切换类。我在网上看了看,但有些是angular1的,没有任何明确的说明或示例。任何帮助都将不胜感激!

在HTML中,我有以下内容:

代码语言:javascript
复制
<div class="my_class" (click)="clickEvent($event)" ngClass="{'active': toggle}">
  Some content
</div>

.ts

代码语言:javascript
复制
clickEvent(event) {
  // Haven't really got far
  var targetEle = event.srcElement.attributes.class;
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-06-14 12:41:33

这对你来说应该是可行的。

在.html中:

代码语言:javascript
复制
<div class="my_class" (click)="clickEvent()"  
    [ngClass]="status ? 'success' : 'danger'">                
     Some content
</div>

在.ts中:

代码语言:javascript
复制
status: boolean = false;
clickEvent(){
    this.status = !this.status;       
}
票数 137
EN

Stack Overflow用户

发布于 2018-08-17 18:44:30

使用不带任何变量和干净模板的renderer2的Angular6:

模板:

代码语言:javascript
复制
<div (click)="toggleClass($event,'testClass')"></div>

在ts中:

代码语言:javascript
复制
toggleClass(event: any, className: string) {
  const hasClass = event.target.classList.contains(className);

  if(hasClass) {
    this.renderer.removeClass(event.target, className);
  } else {
    this.renderer.addClass(event.target, className);
  }
}

也可以将其放入指令中;)

票数 36
EN

Stack Overflow用户

发布于 2017-06-14 12:40:45

ngClass应该包含在方括号中,因为这是一个属性绑定。试试这个:

代码语言:javascript
复制
<div class="my_class" (click)="clickEvent($event)"  [ngClass]="{'active': toggle}">                
     Some content
</div>

在您的组件中:

代码语言:javascript
复制
     //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;       
    }

希望这能有所帮助。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44535515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档