1. ホーム
  2. javascript

グローバルキーボードショートカットを作成するAngularJSの方法は何ですか?

2023-10-29 02:21:33

質問

ディレクティブを使うべきなのでしょうが、ボディにディレクティブを追加しておいて、ドキュメントのイベントをリッスンするのはおかしいと思います。

これを行うための適切な方法は何でしょうか?

UPDATE: AngularJS UIを発見し、見た。 が表示されました。 が表示されるようになった。

どのように解決するのですか?

jQueryを使った方法ですが、もっといい方法があると思います。

var app = angular.module('angularjs-starter', []);

app.directive('shortcut', function() {
  return {
    restrict: 'E',
    replace: true,
    scope: true,
    link:    function postLink(scope, iElement, iAttrs){
      jQuery(document).on('keypress', function(e){
         scope.$apply(scope.keyPressed(e));
       });
    }
  };
});

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.keyCode = "";
  $scope.keyPressed = function(e) {
    $scope.keyCode = e.which;
  };
});

<body ng-controller="MainCtrl">
  <shortcut></shortcut>
  <h1>View keys pressed</h1>
  {{keyCode}}
</body>

プランカーデモ