3

我以前没有使用过 Ember.js,但是在阅读了 视图指南的部分之后,我想知道 Ember 专家如何处理需要将多个本机事件映射到同一个“应用程序事件”的情况。

在指南中,给出的示例显示将(本机)单击事件映射到(特定于应用程序的)deleteItem 事件。在许多情况下,许多本机事件映射到一个特定于应用程序的事件是很常见的。如果用户使用的触摸设备还连接了键盘和鼠标(例如即将推出的 Windows 8 平板电脑),我需要映射“touchstart”、“click”和“keyup”(例如[CTRL]-D)事件怎么办?到同一个特定于应用程序的事件,如 deleteItem?

您是否会在视图上放置 3 个方法——touchStart、click 和 KeyUp——并让它们都调用一个常见的第 4 个方法来发送 deleteItem 事件?

Ember 中是否内置了任何东西来处理这种情况——特别是多个原生事件在应用程序中都具有相同语义的情况?我认为这将变得越来越普遍,因为浏览器支持触摸,笔记本电脑支持触摸,浏览器 API 可以接受来自其他硬件(如麦克风、相机等)的输入......我可以想象一个设备,其中 5 或 6 个本机事件全部对于给定的视图具有相同的语义。

谢谢!

4

1 回答 1

2

我们一直在谈论类似于支持“点击”事件的东西。

我认为最好的方法是使用注册 jQuery 的“特殊事件”。这是更多信息的链接:http: //benalman.com/news/2010/03/jquery-special-events/

要使特殊事件与 Ember 视图一起使用,您需要将其注册为Ember.Application实例上的自定义事件:

Ember.Application.create({
  customEvents: {
    // key is the jquery event, value is the name used in views
    myeventname: 'myEventName'
  }
});
于 2012-06-10T23:12:22.450 回答