我有一个 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/