Вы можете переключать или очищать в зависимости от цели события. Пожалуйста, проверьте ниже код:
import { Directive, HostBinding, Input,ElementRef, HostListener } from '@angular/core';
@Directive({
selector: '[highlighted]'
})
export class HighlightedDirective {
constructor(private _elementRef : ElementRef) { }
@Input('highlighted') isHighlighted = false;
@HostBinding('class.highlighted')
get cssClasses() {
return this.isHighlighted;
}
@HostListener('document:click', ['$event.target'])
public onClick(targetElement) {
const clickedInside = this._elementRef.nativeElement.contains(targetElement);
if (clickedInside) {
this.isHighlighted = !this.isHighlighted
}
else{
this.isHighlighted =false;
}
}
}