Angular 如何使用角度渲染器2在单击的元素上设置类

Angular 如何使用角度渲染器2在单击的元素上设置类,angular,renderer,angular-renderer2,Angular,Renderer,Angular Renderer2,我在组件的html中的span上附加了一个角度单击事件 <span (click)="doWork($event)" > Something </span> 但我无法以这种方式在span上附加类,我缺少什么吗?您可以这样做 <span (click)="doWork()" id="sp_id"> Something </span> // You can use a class if you wish 这将解决问题。您所需行为的另一种实现是使用n

我在组件的html中的span上附加了一个角度单击事件

<span (click)="doWork($event)" > Something </span>

但我无法以这种方式在span上附加类,我缺少什么吗?

您可以这样做

<span (click)="doWork()" id="sp_id"> Something </span> // You can use a class if you wish

这将解决问题。

您所需行为的另一种实现是使用
ngClass
,并在HTML中直接单击元素时添加/删除自定义类的标志

HTML:


你能在闪电战中重现你的问题吗?我无法复制你的问题,
<span (click)="doWork()" id="sp_id"> Something </span> // You can use a class if you wish
constructor(private renderer2: Renderer2) {
}

doWork() {
   const span_id = this.renderer.selectRootElement('#sp_id');
   this.renderer.addClass(span_id, 'spclass'); // spclass is the name of the class
}
<span [ngClass]="classAddFlag ? 'spClass' : ''" (click)="doWork()" > Something </span>
// Set the flag as component variable
classAddFlag = false;

doWork (e) {
   //some operations
   this.classAddFlag = !this.classAddFlag;
}