2015-08-22 5 views
45

Das folgende funktioniert gut, wenn der Schlüssel freigegeben wird. Welche anderen Optionen sind für die keyup zusätzlich zu keyup.enter verfügbar?Was sind die Optionen für (keyup) in Angular2?

<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/> 
+0

Vielleicht könnte dies Ihnen einen Hinweis geben https://github.com/angular/angular/issues/523, es ist ziemlich alt, obwohl. –

Antwort

43

Dies sind die Optionen zur Zeit in den Tests dokumentiert: ctrl, verschieben, ein- und austreten. Dies sind nur einige Beispiele für gültige Tastenbelegungen:

keydown.control.shift.enter 
keydown.control.esc 

Sie können diese here verfolgen, während keine offiziellen Dokumente existieren, aber sie sollte bald erscheinen.

+3

Wow, diese Antwort wurde gegeben, als Angular in seinem 20. Alpha war und heute noch funktioniert. –

+0

Verwandte Dokumentation https://angular.io/guide/user-input#key-event-filtering-with-keyenter –

2

Sie Ereignis wie dieses

template: ` 
    <input (keyup)="onKey($event)"> 
    <p>{{values}}</p> 
` 
hinzufügen keyup können

in Komponenten, Code wie einige unter

export class KeyUpComponent_v1 { 
    values = ''; 

    onKey(event:any) { // without type info 
    this.values += event.target.value + ' | '; 
    } 
} 
+0

Dies funktioniert nicht für Zahlen. Das keyup-Ereignis wird nicht ausgelöst, wenn ich eine Zahl in das Eingabefeld eintippe. Was können wir dafür tun? – monica

1

Wenn Ihr keyup ev ent außerhalb des CTRL, SHIFT, ENTER und ESC Klammer, benutzen Sie einfach @Md Ayub Ali Sarker Leitfaden. Das einzige Schlüssel-Pseudo-Ereignis, das hier in eckigen Dokumenten https://angular.io/docs/ts/latest/guide/user-input.html erwähnt wird, ist ENTER Schlüssel. Es gibt noch keine Keyup-Pseudoereignisse für Zifferntasten und Alphabete.

1

Ich suchte nach einer Möglichkeit, an mehrere Schlüsselereignisse zu binden - insbesondere Shift + Enter - aber konnte keine guten Ressourcen online finden. Aber nachdem ich die Keydown-Bindung

protokolliert habe, entdeckte ich, dass das Tastaturereignis alle Informationen zur Verfügung stellte, die ich brauchte, um Shift + Enter zu erkennen. Stellt sich heraus, dass $event eine ziemlich detaillierte KeyboardEvent zurückgibt.

Es gibt auch Flags für die CtrlKey, AltKey und MetaKey (d. H. Befehlstaste auf Mac).

Keine Notwendigkeit für die KeyEventsPlugin, JQuery oder eine reine JS-Bindung.

Verwandte Themen