使用@HostListener()装饰器的事件数据

时间:2018-04-29 23:08:09

标签: angular

如何获取我到达的事件数据(即$event):

<button (click)="doSomething($event)">

这里改为?:

@HostListener('click') onClick($event) {
    // TypeError: $data is undefined
}

未定义...... :(

2 个答案:

答案 0 :(得分:1)

我认为你的HostListener可能是某些应该在按钮上使用的指令的一部分?比你必须这样做: - click-me.directive.ts

@Directive({
    selector: '[appClickMe]'
})

export class ClickMeDirective {

    @HostListener('click', ['$event'])
    onClick(event: Event) {
        console.log(event);
    }
}

然后在

上使用此指令
<button appClickMe > Click me</button>

这将有效。但这也是矫枉过正的,当你有角度点击监听器时你不需要这样做:

<button (click)="doSomething($event)">

并在您的.ts文件中:

doSomething($event) {
    console.log($event);
}

希望这会有所帮助!!

答案 1 :(得分:1)

更改此

@HostListener('click') onClick($event) {
  ...
}

到这个

@HostListener('click', ['$event']) onClick($event) {
  ...
}
相关问题