7

我已经开始使用 angular-ui keypress 模块,并且想知道是否有一种方法可以使全局快捷键无论我放在体内的哪个位置都可以工作。

我尝试将我的 ui-keydown 链接到正文,但由于它不在焦点上,因此不会触发关键事件。

例如:

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

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

4

2 回答 2

16

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

    angular.element($window).on('keydown', function(e) {
        console.log(e);
    });
于 2013-10-06T07:19:34.780 回答
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);
于 2013-10-06T07:21:23.340 回答