🖱️
Angular Click Outside Directive
Detect clicks outside a specific element using a reusable directive.
#angular
#directive
#dom
Angular Click Outside Directive
Need to close a dropdown or modal when the user clicks somewhere else? Use this directive.
import { Directive, ElementRef, Output, EventEmitter, HostListener } from '@angular/core';
@Directive({
selector: '[clickOutside]',
standalone: true
})
export class ClickOutsideDirective {
@Output() clickOutside = new EventEmitter<void>();
constructor(private elementRef: ElementRef) {}
@HostListener('document:click', ['$event.target'])
public onClick(target: any) {
const clickedInside = this.elementRef.nativeElement.contains(target);
if (!clickedInside) {
this.clickOutside.emit();
}
}
}
Usage
<div class="dropdown" (clickOutside)="closeDropdown()">
<!-- Dropdown content -->
</div>