将mouseevent传递给组件onclick

时间:2017-09-19 20:15:02

标签: angular typescript

我正在尝试捕获Angular组件中的鼠标坐标。

这是有问题的html:

<div id="container" class="fullSize" style="height:100%;" (click)="onClick(ev)"></div>

以下是相应的typescript文件中的组件函数:

onClick( ev : MouseEvent ) {
  console.log("x:" + ev.clientX);
}

控制台中的错误:

Cannot read property 'clientX' of undefined'

将MouseEvent传递给组件函数的正确方法是什么?

2 个答案:

答案 0 :(得分:6)

您应该使用$eventMouseEvent对象传递给您的点击处理程序。

所以简单地写一下:

(click)="onClick($event)"

另见

答案 1 :(得分:1)

当前最佳做法:

<div id="container" class="fullSize" style="height:100%;" (click)=onClick($event.clientX)"></div>
onClick(myClientX: number) { 
  console.log("x: " + myClientX);
}

在此处找到当前的指南:Passing $event is a dubious practice