2013-09-25 11 views
6

Açısal anahtar arabirim modülünü kullanmaya başladım ve nerede olursam olalım nerede olursanız olun genel kısayol tuşlarını yapmanın bir yolu olup olmadığını merak ediyorum.angular-ui genel anahtar bağlantıları

UI anahtarımı gövdeye bağlamayı denedim ancak odakta olmadığı için önemli olaylar tetiklenmiyor.

örn: ben sadece bir div odaklanma ve buna tuş bağları bağlamak olabilir biliyorum ama bir form var ve ben her alan içindeki tüm küresel anahtar bağları erişmek istediğinizde ne olur

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

?

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

Olayı, "denetleyici" veya "yönerge" bağlantı işlevinizde "$ window" olarak bağlamayı denediniz mi? – rogerz

+0

Şimdi var ve 'nesnenin hiçbir yöntemi yoktur' uygulamasından şikayetçi olursam, bu yüzden nav_to yöntemimde bir uygulama işlevi koymaya çalıştım ancak onu tanıyamadı. Bunu yapmanın özel bir yolu var mı? – map7

+0

Bir jsfiddle kurabilir misiniz? –

cevap

16

ana uygulama denetleyicisi bu deneyin ardından

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

Ve set:

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); 
+1

Zekice çalıştım, "$ window" penceresini değiştirmek zorunda kaldım. –

+0

@BenFortune [$ window] (https://docs.angularjs.org/api/ng/service/$window) hizmetini denetleyiciye (veya kullanıldığı her yere) bağımlı olarak enjekte etmelisiniz. – user2301179

+0

@ user2301179 Direktifte kullanılıyordu ve işe yaramadıysa da enjekte edildi. –

2

Bir denetleyici yapabilir ve vücut etiketi üzerinde ayarlayın ve aynı zamanda önemli bir olay geri arama ayarlayın::