Enter tuşu bırakıldığında aşağıdakiler harika çalışıyor . Ek olarak başka hangi seçenekler mevcuttur ?keyup
keyup.enter
<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>
Enter tuşu bırakıldığında aşağıdakiler harika çalışıyor . Ek olarak başka hangi seçenekler mevcuttur ?keyup
keyup.enter
<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>
Yanıtlar:
Şu anda testlerde belgelenen seçenekler şunlardır: ctrl, shift, enter ve escape. Bunlar, anahtar bağlamaların bazı geçerli örnekleridir:
keydown.control.shift.enter
keydown.control.esc
Resmi belgeler yokken bunu buradan takip edebilirsiniz , ancak yakında çıkacaklar.
Birden çok önemli olaya (özellikle Shift + Enter) bağlanmanın bir yolunu arıyordum, ancak çevrimiçi olarak iyi bir kaynak bulamadım. Ancak keydown bağını kaydettikten sonra
<textarea (keydown)=onKeydownEvent($event)></textarea>
Klavye olayının Shift + Enter'ı algılamak için ihtiyacım olan tüm bilgileri sağladığını keşfettim. $event
Oldukça ayrıntılı bir KeyboardEvent döndürdüğü ortaya çıktı .
onKeydownEvent(event: KeyboardEvent): void {
if (event.keyCode === 13 && event.shiftKey) {
// On 'Shift+Enter' do this...
}
}
Ayrıca CtrlKey, AltKey ve MetaKey için işaretler de vardır (yani Mac'te Command tuşu).
KeyEventsPlugin, JQuery veya saf JS bağlantısına gerek yok.
Bu dosya size daha fazla ipucu verir, örneğin, keydown.up çalışmıyor, keydown.arrowup'a ihtiyacınız var:
Bugün aynı sorunu yaşadım.
Bunlar yeterince belgelenmemiş, açık bir sorun var.
Bazıları anahtarlama için , boşluk gibi:
<input (keyup.space)="doSomething()">
<input (keyup.spacebar)="doSomething()">
Bazıları keydown için
(keyup için de çalışabilir):
<input (keydown.enter)="...">
<input (keydown.a)="...">
<input (keydown.esc)="...">
<input (keydown.alt)="...">
<input (keydown.shift.esc)="...">
<input (keydown.shift.arrowdown)="...">
<input (keydown.f4)="...">
Yukarıdakilerin tümü aşağıdaki bağlantılardandır:
https://github.com/angular/angular/issues/18870
https://github.com/angular/angular/issues/8273
https://github.com/angular/angular/blob/master/packages/platform- browser / src / dom / events / key_events.ts
https://alligator.io/angular/binding-keyup-keydown-events/
bunun gibi keyup olayı ekleyebilirsiniz
template: `
<input (keyup)="onKey($event)">
<p>{{values}}</p>
`
Bileşende, aşağıdaki gibi kodlayın
export class KeyUpComponent_v1 {
values = '';
onKey(event:any) { // without type info
this.values += event.target.value + ' | ';
}
}
Senin keyUp olay dışındaysa CTRL, SHIFT, ENTERve ESCparantez, sadece @Md Ayub Ali SARKER kılavuzuna kullanın. Burada açısal belgelerde https://angular.io/docs/ts/latest/guide/user-input.html'de bahsedilen tek ENTERanahtar oluşturma sözde olayı anahtardır. Henüz sayı tuşları ve alfabeler için herhangi bir sözde anahtarlama etkinliği yok.
Kullanımdan keyCode
kaldırıldı, key
mülk kullanabilirsinizKeyboardEvent
<textarea (keydown)=onKeydownEvent($event)></textarea>
Typescript:
onKeydownEvent($event: KeyboardEvent){
// you can use the following for checkig enter key pressed or not
if ($event.key === 'Enter') {
console.log($event.key); // Enter
}
if ($event.key === 'Enter' && event.shiftKey) {
//This is 'Shift+Enter'
}
}
Olaylarla beğeni
(keydown)="$event.keyCode != 32 ? $event:$event.preventDefault()"