【发布时间】:2014-03-28 10:17:07
【问题描述】:
如果您使用的是 AngularJS,那么绑定键盘按键事件的理想方法是什么?
现在我正在控制器内设置键盘事件的映射...
ngApp.controller('MainController', function MainController($scope) {
$scope.keyEvents = function() {
if($('calculator').hasClass('open')) {
switch(e.keyCode) {
case 8:
calc.deleteDigit();
return;
case 13:
calc.equals();
*etc., etc.*
}
}
var $article = $("article");
var $articleScrollTop = $article.scrollTop();
//PageDown
if(e.keyCode == 34) {
$('article').animate({
scrollTop: ($articleScrollTop + 480 + i++)
}, 500);
}
//PageUp
if(e.keyCode == 33) {
$article.animate({
scrollTop: ($articleScrollTop - 480 - i++)
}, 500);
}
}
}
我开始认为在 AngularJS 应用程序中附加键盘事件是一种最佳实践。
我应该使用element.bind 并在相应指令中设置键盘事件吗?
提前感谢您的帮助!
【问题讨论】:
-
如果您不介意向项目添加依赖项,AngularUI 有一个指令 binds to keypress events。
-
感谢@lostriebo 试一试。
标签: javascript angularjs keyboard