Keyboard 如何在Ember中捕获全局按键事件

Keyboard 如何在Ember中捕获全局按键事件,keyboard,ember.js,Keyboard,Ember.js,我确信我遗漏了一些明显的东西,但是:我如何响应页面上任何地方的按键事件 例如,假设我有一个视频播放器,如果用户在任意点按下空格键,我想暂停它。或者,我正在写一个游戏,希望箭头键指向一个角色,而不考虑特定的视图或子视图 定义App.ApplicationView=Ember.View.create({keyPress:whatever})似乎不起作用。我原以为所有按键事件都会达到这个程度 我想我想做的是: $(document).keypress(function(e) { alert('

我确信我遗漏了一些明显的东西,但是:我如何响应页面上任何地方的按键事件

例如,假设我有一个视频播放器,如果用户在任意点按下空格键,我想暂停它。或者,我正在写一个游戏,希望箭头键指向一个角色,而不考虑特定的视图或子视图

定义App.ApplicationView=Ember.View.create({keyPress:whatever})似乎不起作用。我原以为所有按键事件都会达到这个程度

我想我想做的是:

$(document).keypress(function(e) {
    alert('You pressed a key!');
});

除非通过Ember。

如果您正在寻找全局按键,那么上面的代码示例可能是最好的解决方案。余烬应用程序附加到主体(或您定义的根元素)上,需要对视图进行某种关注。例如,您可以执行以下操作:

App.ApplicationView = Em.View.extend({
  keyUp: function(){
    alert(1);
  }
});

这将起作用,但应用程序视图或子视图需要有焦点。例如,如果您希望捕获所有输入字段的关键事件,这将非常有用。

当子视图已聚焦时,我的应用程序级事件将丢失,仍在搜索执行此操作的最佳余烬方法。