角度指令拦截器单击事件

我希望取消指令点击事件

@Directive({
  selector: '[shortConfirm]'
})
export class ShortConfirmDirective implements OnInit{
  @HostListener("click",["$event"])
  public onClick(event: any): boolean {
    console.info('2222');
    event.cancelBubble=true;// ie下
    event.stopPropagation();
    return true;
  }
}

我尝试过事件。 Cancelbubble = true;

事件取消失败

HU9694 回答:角度指令拦截器单击事件

您可以尝试在捕获阶段拦截事件并将其取消。

尝试一下。

@Directive({
  selector: '[shortConfirm]'
})
export class ShortConfirmDirective implements OnInit {

  constructor(
    private _elementRef: ElementRef,) { }

  ngOnInit() {
    fromEvent(this._elementRef.nativeElement,'click',{
      capture: true,}).subscribe((e: MouseEvent) => {

      e.stopImmediatePropagation();
    });
  }
}
本文链接:https://www.f2er.com/3167517.html

大家都在问