如何在Angular中检测组件外部的点击事件?
如何在Angular中检测组件外部的点击事件?
使用rxjs使代码整洁易读。 我在aggrid自定义单元格编辑器中使用它来检测自定义单元格编辑器内的点击事件。
private clickSubscription: Subscription | undefined;
public ngOnInit(): void {
this.clickSubscription = fromEvent(document, "click").subscribe(event => {
console.log("event: ", event.target);
if (!this.eRef.nativeElement.contains(event.target)) {
// ... click outside
} else {
// ... click inside
});
public ngOnDestroy(): void {
console.log("ON DESTROY");
this.clickSubscription?.unsubscribe();
}
你可以像调用 (focusout) 或者 (blur) 一样调用事件函数;然后在你的代码中加入:
<div tabindex=0 (blur)="outsideClick()">raw data </div>
outsideClick() {
alert('put your condition here');
}