如何监听点击Angular 2元素并获取事件对象?

时间:2017-05-08 20:04:03

标签: javascript angular

我有一个指令,我会将某些锚元素应用于preventDefault()

import { Directive, ElementRef, HostListener } from '@angular/core';

@Directive({
  selector: '[myDirective]'
})
export class myDirective {

  constructor(private el: ElementRef) { }

  @HostListener('click') onClick(event) {
    event.preventDefault() // event is undefined
  }

}

我正在尝试做的基本上是在jQuery中:

$('[my-directive]').click(function (e) {
    e.preventDefault();
});

我怎样才能实现角度?我有Angular 4.1。

1 个答案:

答案 0 :(得分:1)

您还需要指定args

@Directive({
  selector: '[myDirective]'
})
export class MyDirective {
  @HostListener('click', ['$event']) /* note args array */
  onClick(event) {
    console.log(event);
    event.preventDefault();
  }
}

查看示例Plunkr:https://embed.plnkr.co/eNXEdb/(打开控制台,然后点击" Hello Angular" )。