angular-ui全局键绑定

时间:2013-09-25 00:51:23

标签: angularjs keyboard-shortcuts angular-ui

我开始使用angular-ui按键模块,并想知道是否有办法使全局快捷键无论我放在身体的哪个位置都能正常工作。

我已经尝试将我的ui-keydown连接到身体,但由于它不是焦点,所以不会触发关键事件。

例如:

<body ui-keydown="{'pageup':'nav_to($event, \'users\')'}">

我知道我可以只关注div并将键绑定附加到那个但是当我有一个表单并且我想访问每个字段中的所有全局键绑定时会发生什么?

2 个答案:

答案 0 :(得分:16)

在主应用控制器中试试这个:

    angular.element($window).on('keydown', function(e) {
        console.log(e);
    });

答案 1 :(得分:2)

你可以制作一个控制器并在body标签上设置它,并设置一个关键事件回调:

<body ng-controller="keycontroller"  ui-keyup="{'enter':'callback($event)'}" >
  <input type="text" ng-model="test1" />
  <input type="text" ng-model="test2" />
</body>

然后设置:

function keycontroller($scope) {
   $scope.test1= "It should work here...";
   $scope.test2= "...and also here.";

   $scope.callback = function fn($event) {
    console.log("Enter key pressed");
 };

}

var app = angular.module("app", ['ui.keypress']);
app.controller("keycontroller", keycontroller);