it-swarm.com.ru

Какие есть варианты (keyup) в Angular2?

Следующее прекрасно работает при отпускании клавиши ввод. Какие другие опции доступны для keyup в дополнение к keyup.enter?

<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>
60
AlikElzin-kilaka

Эти параметры в настоящее время документированы в тестах: Ctrl, Shift, Enter и Escape. Вот несколько действительных примеров привязки клавиш:

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

Вы можете отследить это здесь пока нет официальных документов, но они должны скоро выйти.

48
Angular University

Этот файл дает вам еще несколько советов, например, keydown.up не работает, вам нужен keydown.arrowup:

https://github.com/angular/angular/blob/630d93150a58581a0d474ebf1befb5d09b6813c5/modules/angular2/src/platform/browser/browser_adapter.Dart

12
Kasper

Я искал способ привязки к нескольким ключевым событиям - в частности, 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-привязке.

5
protalk

вы можете добавить событие Keyup, как это 

template: `
  <input (keyup)="onKey($event)">
  <p>{{values}}</p>
`

в компоненте, код, как показано ниже

export class KeyUpComponent_v1 {
  values = '';

  onKey(event:any) { // without type info
    this.values += event.target.value + ' | ';
  }
}
4
Md Ayub Ali Sarker

Если ваше событие keyup находится за пределами CTRLSHIFTENTER а также ESC скобка, просто используйте руководство @Md Ayub ALi Sarker. Единственное псевдо-событие keyup, упомянутое здесь в угловых документах https://angular.io/docs/ts/latest/guide/user-input.html это ENTER ключ. Для цифровых клавиш и алфавитов пока нет псевдо-событий.

1
Benny64

Для Angular 7 можно использовать keyup. https://angular.io/guide/user-input

0
user2148228

Ударил ту же проблему сегодня.

Они плохо документированы, существует открытая проблема.

Некоторые для keyup, например пробел: 

<input (keyup.space)="doSomething()">
<input (keyup.spacebar)="doSomething()">  

Некоторые для keydown
(может работать и для keyup):

<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/

0
Manohar Reddy Poreddy