SORU
23 ŞUBAT 2013, CUMARTESİ


AngularJS genel klavye kısayolları oluşturmak için yolu nedir?

Direktif kullanacağım sanırım, ama garip vücut için Direktif ekleyin, ancak belge üzerinde olayları dinlemek gibi görünüyor.

Bunu yapmak için uygun bir yolu nedir?

GÜNCELLEME: AngularJS UI ve basışı Direktifi their gerçekleşme gördüm.

CEVAP
16 EKİM 2013, ÇARŞAMBA


Daha uygun bir şekilde söyleyebilirim (veya "Açısal yol") bir Direktifi eklemek olacaktır. İşte size basit bir (sadece <body> keypress-events öznitelik ekleyin):

angular.module('myDirectives', []).directive('keypressEvents', [
  '$document',
  '$rootScope',
  function($document, $rootScope) {
    return {
      restrict: 'A',
      link: function() {
        $document.bind('keypress', function(e) {
          console.log('Got keypress:', e.which);
          $rootScope.$broadcast('keypress', e);
          $rootScope.$broadcast('keypress:'   e.which, e);
        });
      }
    };
  }
]);

Sizin göreviniz o sadece böyle bir şey yapabilirsiniz:

module.directive('myDirective', [
  function() {
    return {
      restrict: 'E',
      link: function(scope, el, attrs) {
        scope.keyPressed = 'no press :(';
        // For listening to a keypress event with a specific code
        scope.$on('keypress:13', function(onEvent, keypressEvent) {
          scope.keyPressed = 'Enter';
        });
        // For listening to all keypress events
        scope.$on('keypress', function(onEvent, keypressEvent) {
          if (keypress.which === 120) {
            scope.keyPressed = 'x';
          }
          else {
            scope.keyPressed = 'Keycode: '   keypressEvent.which;
          }
        });
      },
      template: '<h1>{{keyPressed}}</h1>'
    };
  }
]);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3biblecom

    3biblecom

    23 NİSAN 2011
  • NightShader1

    NightShader1

    25 Temmuz 2006
  • sghaff1

    sghaff1

    23 Mart 2009