javascript - Ember 键盘快捷键

标签 javascript ember.js keyboard-shortcuts

我有一个 ember 应用程序,我想向其中添加键盘快捷键。无论用户位于应用程序中的哪个位置,特定的组合键都应该起作用,也就是说,无论用户在任何点所处的 Controller 、 View 或路线如何,按键都应该触发操作。为此,我必须在应用程序中监听 keyPress 事件。我尝试使用将混合到 ApplicationView 中的 mixin,不幸的是,keyPress 事件仅在 View 具有焦点且应用程序 View 并不总是具有焦点时才会传播。我尝试过:

App.ApplicationView = Em.View.extend(App.KeyBoardShortcutsMixin,{
  didInsertElement: function() {
    this.$().focus();
  } 
});

这不会实现我的目的,因为 keyPress 事件在用户与应用程序交互之前工作正常,但一旦此 View 失去焦点,它将不再触发。由于我有大量 View ,因此将 View 混合混合到可能在应用程序中创建的每个 View 中似乎很浪费。如何以干净的方式添加此功能?

最佳答案

我不知道你想用快捷键做什么,但是如果你将按键事件绑定(bind)到应用程序的主体,则无论焦点在哪里,都应该触发该事件

Ember.$('body').on('keypress', function(e) {
  console.log('do something');
});

这是带有“输入键”的插图:http://emberjs.jsbin.com/zukazazo/2/edit

再一次,如果没有更多有关您要在 mixin 中实现的目标的详细信息,很难回答您的问题。

关于javascript - Ember 键盘快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24593784/

相关文章:

javascript - 显示动态滚动条jquery

javascript - 以下可缓存资源的新鲜度生命周期很短 - Google 字体

javascript - 处理 ember.js 中的页面标题

ember.js - RSVP - 使用 promise 处理超时

javascript - 是否可以在 javascript 中创建具有 123,345 这样的序列而不是组合的快捷方式?

同步 View 中 'Expand All' 的 Eclipse 快捷方式

visual-studio - 关闭所有选项卡但固定在 Visual Studio 中的键盘快捷键?

javascript - Ember.js:对模型进行分组(使用 ArrayProxy)

javascript - 正则表达式拆分用户定义的字符串

ember.js - 在 EmberJS 中获取父路由