我以前没有使用过Ember.js,但在阅读了guide on views的一部分后,我想知道Ember专家如何处理需要将多个本机事件映射到同一“应用程序事件”的情况。
在本指南中,给出的示例显示了将(本机) click事件映射到(特定于应用程序的) deleteItem事件。在许多情况下,许多本机事件映射到一个特定于应用程序的事件是很常见的。如果用户使用的是带有键盘和鼠标的触控设备(例如即将推出的Windows8平板电脑),而我需要将"touchstart“、"click”和"keyup“(例如[CTRL]-D)事件映射到相同的应用程序特定事件(如deleteItem ),该怎么办?
您是否只需要在视图上放置3个方法-- touchStart、click和KeyUp --并让它们都调用一个通用的第4个方法来发送deleteItem事件?
Ember中有没有内置的东西来处理这种情况--具体地说,就是在应用程序中多个本地事件都具有相同的语义含义的情况?我认为这将变得越来越普遍,因为浏览器支持触摸,笔记本电脑支持触摸,浏览器API可以接受来自其他硬件的输入,如麦克风、摄像头等。我可以想象一个设备,其中5到6个本地事件对于给定的视图都具有相同的语义含义。
谢谢!
发布于 2012-06-11 07:12:22
我们一直在谈论一些类似于支持‘点击’事件的东西。
我认为最好的方法是使用注册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'
}
});https://stackoverflow.com/questions/10966823
复制相似问题