我目前正在使用指令实现键盘快捷键在我的角度应用程序。该指令名为"keyCapture“。它包含在索引页的body标记中。
<body ng-controller="MainCtrl" key-capture>这个指令混合使用$broadcast和其他方法来完成任务。
angular.module('plunker').directive('keyCapture',['$state','$rootScope',function($state, $rootScope){
var shortCutKeys = [];
return {
link: function(scope,element,attrs,controller){
element.on('keydown',function(e){
shortCutKeys.push(e.keyCode);
if (shortCutKeys.length === 2){
var key2 = shortCutKeys.pop();
var key1 = shortCutKeys.pop();
/*press g and 1 - navigate to a different state*/
if (key1 === 71 && key2 == 49) {
$state.transitionTo('option1');
}
/*press g and 2 - navigate to a different state*/
if (key1 === 71 && key2 == 50) {
$state.transitionTo('option2');
}
/*press g and 3 - call a function */
if (key1 === 71 && key2 == 51) {
$rootScope.$broadcast('option1-event1')
}
/*press g and 4 - call a function*/
if (key1 === 71 && key2 == 52) {
$rootScope.$broadcast('option1-event2')
}
}
})
}
};
}]);plnkr可在这里获得:http://plnkr.co/yqS3O3wGoiE00tPOzcLP
我怀疑这是否是实现键盘快捷键进入应用程序的正确方式。任何人都对如何将键盘快捷键集成到应用程序中有更好的了解。请评论..。或者更好的活动..。用一些代码示例来解释。
谢谢
发布于 2014-04-22 14:54:54
你查过角热键了吗?“角斗士”的项目经理布拉德·格林( Brad )曾多次提到过它是多么令人敬畏。除非你只是在努力学习,否则可能比实现你自己更好。
https://stackoverflow.com/questions/23222980
复制相似问题