Наступне чудово працює, коли клавішу введення відпущено. Які ще варіанти доступні для keyup
додатково keyup.enter
?
<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>
Наступне чудово працює, коли клавішу введення відпущено. Які ще варіанти доступні для keyup
додатково keyup.enter
?
<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>
Відповіді:
Це параметри, зафіксовані в даний час в тестах: ctrl, shift, enter і escape. Ось кілька валідних прикладів прив’язки ключів:
keydown.control.shift.enter
keydown.control.esc
Ви можете відстежити це тут, поки офіційних документів не існує, але вони мають вийти найближчим часом.
Я шукав спосіб прив’язки до кількох ключових подій - зокрема, Shift + Enter - але не зміг знайти хороших ресурсів в Інтернеті. Але після реєстрації прив'язки клавіатури
<textarea (keydown)=onKeydownEvent($event)></textarea>
Я виявив, що подія клавіатури надавала всю інформацію, необхідну мені для виявлення Shift + Enter. Виявляється, $event
повертається досить детальний KeyboardEvent .
onKeydownEvent(event: KeyboardEvent): void {
if (event.keyCode === 13 && event.shiftKey) {
// On 'Shift+Enter' do this...
}
}
Також є прапори для CtrlKey, AltKey та MetaKey (тобто клавіша Command на Mac).
Немає потреби в KeyEventsPlugin, JQuery або чистому прив'язуванні JS.
Цей файл дає вам ще кілька підказок, наприклад, keydown.up не працює, вам потрібна keydown.arrowup:
Втратили ту саму проблему сьогодні.
Вони погано задокументовані, відкрите питання існує.
Деякі для клавіатури , наприклад пробіл:
<input (keyup.space)="doSomething()">
<input (keyup.spacebar)="doSomething()">
Деякі для клавіатури
(може працювати і для клавіатури):
<input (keydown.enter)="...">
<input (keydown.a)="...">
<input (keydown.esc)="...">
<input (keydown.alt)="...">
<input (keydown.shift.esc)="...">
<input (keydown.shift.arrowdown)="...">
<input (keydown.f4)="...">
Все вище є посиланнями нижче:
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/
Ви можете додати подію клавіатури, як це
template: `
<input (keyup)="onKey($event)">
<p>{{values}}</p>
`
у Component кодуйте деякі, як показано нижче
export class KeyUpComponent_v1 {
values = '';
onKey(event:any) { // without type info
this.values += event.target.value + ' | ';
}
}
Якщо KeyUp подія знаходиться за межами CTRL, SHIFT, ENTERі ESCкронштейн, використовуйте тільки керівництво @Md Аюб Алі Саркер в. Єдина псевдо-подія підключення, згадана тут у кутових документах https://angular.io/docs/ts/latest/guide/user-input.html, є ENTERключовою. Ще немає псевдо-подій клавіатури для цифрових клавіш та алфавітів.
Ви keyCode
застаріли, ви можете використовувати key
властивість уKeyboardEvent
<textarea (keydown)=onKeydownEvent($event)></textarea>
Машинопис:
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'
}
}
Такий, як з подіями
(keydown)="$event.keyCode != 32 ? $event:$event.preventDefault()"