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 に答える