我正在尝试让我的控制器监视按键组合。为了便于论证,我们可以说:上、下、下、左、右、左、右 b a。无论用户当前位于页面的哪个位置,我怎样才能有角度地寻找这些内容?
看起来你可以使用ng-keydown去做这个。
这里有一个工作笨蛋.
对于这个示例,我刚刚绑定ng-keydown
to <body>
。可以很好地捕获全局的所有键盘事件。
正如@charlietfl 指出的那样,ng-keydown
注册了很多键盘事件,因此要使其可用将需要大量工作。例如,如果您尝试监听组合(例如ctrl
+ r
),那么ctrl
密钥将注册多次。
JS:
var myApp = angular.module('myApp', []);
myApp.controller('Ctrl', function($scope) {
$scope.keyBuffer = [];
function arrays_equal(a,b) { return !(a<b || b<a); }
$scope.down = function(e) {
$scope.keyBuffer.push(e.keyCode);
var upUp = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65];
if (arrays_equal(upUp, $scope.keyBuffer)) {
alert('thats it!');
}
};
});
HTML:
<body ng-controller="Ctrl" ng-keydown="down($event)">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)