Angular 2事件绑定 - 我需要$event吗?

4

我注意到在Angular 2中,与文档不同的是,当我进行事件绑定时,我不需要传递$event来从组件方法中访问事件数据。因此,下面的代码可以正常工作:

在模板中:

<h2 (mouseover)="getCoord()"  >Random Words</h2>

在组件中:
getCoord() {
  console.log(event.clientX + ", " + event.clientY);
}

这种方法非常完美,无需将$event对象传递给方法。

这样做是否可行?现在是否是首选方法,但文档中没有展示?在我看来,这很好。


真的是你吗?CodeSchool的人? - rubentd
3
哈哈,是啊,正在制作一门关于Angular 2的课程。 - Gregg Pollack
1
我在Chrome中注意到了这一点。在Firefox中尝试,你可能会得到一个错误。 - dcodesmith
1个回答

3
我认为这是Angular的一个缺陷,不应该继续使用它。
例如,有一个名为@HostListener()的装饰器,它有一个明确的args参数,您可以在其中定义是否传递$event、$event.target或其他事件属性。
对于WebWorker和UI线程之间的通信,存在一些优化,只有在args中定义的事件部分才会被序列化并在这些线程之间传递。我猜测您在问题中使用的事件绑定也类似地进行了优化。

1
感谢您的回答。正如dcodesmith所提到的,相同的代码在Firefox中无法工作。 - Gregg Pollack
有趣的发现 :D 它在 Chrome 中可以工作但在 FF 中不能。 - Günter Zöchbauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接