2013-10-25 4 views
25

Die Dokumentation für Angular'sngkeyup ist praktisch nicht existent. Ich habe ein Container-Div für meine Ansicht, auf die ich Schlüsselereignisse anwenden möchte, aber ich möchte sie von einer Funktion in meinem Controller steuern.Kann AngularJS ng-Keyup in welche Taste gedrückt werden?

Ich versuche, so etwas zu tun:

Ansicht:

<div class="container" ng-keyup="keyPress(e)"></div> 

Controller:

$scope.keyPress = function(e){ 
    console.log(e); // where 'e' is the keycode of whatever was pressed 
} 

Ist das überhaupt möglich? Ich kann nirgends eine Information darüber finden, was ng-keyup tatsächlich macht und wie man es benutzt! Zum Beispiel möchte ich ein Ereignis auslösen, wenn die left arrow key (37) gedrückt wird, wie würde ich dies mit Angular erreichen?

Antwort

49

Sie können etwas tun, $event Objekt übergeben.

<div class="container" ng-keypress="keyPress($event)"></div>

Dies wird in der Dokumentation erwähnt

Expression auf keyup zu bewerten. (Event-Objekt als $ Veranstaltung zur Verfügung und kann für keyCode abgefragt werden, altKey usw.)

+3

Das Beispiel keyPress ($ event) ist gut, die Dokumentation hat das nicht gezeigt. – user2483724

25

Vorlage:

<div class="container" ng-keyup="keyPress($event.keyCode)"></div> 

Controller:

$scope.keyPress = function(keyCode){ 
    console.log(keyCode); 
} 
Verwandte Themen