2015-08-22 2 views
45

Следующее работает отлично, когда введите ключ отпущен. Какие еще варианты доступны для keyup в дополнение к keyup.enter?Каковы варианты (keyup) в Angular2?

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

Возможно, это может дать вам подсказку https://github.com/angular/angular/issues/523, но это довольно старый. –

ответ

43

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

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

Вы можете отслеживать этот here пока нет официальных документов не существуют, но они должны быть в ближайшее время.

+3

Вау, этот ответ был дан, когда Angular был в своей 20-й альфе, и он по-прежнему работает сегодня. –

+0

Связанная документация https://angular.io/guide/user-input#key-event-filtering-with-keyenter –

2

вы можете добавить 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 + ' | '; 
    } 
} 
+0

Это не работает для чисел. Событие keyup не запускается, если я набираю номер в поле ввода. Что мы можем сделать для этого? – monica

1

Если ваш ключ ev лор находится вне CTRL, SHIFT, ENTER и ESC кронштейн, используйте только руководство @Md Аюб Али Саркер в. Единственное ключевое псевдослучайное событие, упомянутое здесь в угловых документах https://angular.io/docs/ts/latest/guide/user-input.html, - ENTER ключ. Пока нет псевдо-событий для клавишных клавиш и алфавитов.

1

Я искал способ привязки к нескольким ключевым событиям - в частности, Shift + Enter - но не смог найти никаких хороших ресурсов в Интернете. Но после регистрации в KeyDown связывания

<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, и клавишу Alt MetaKey (т.е. Command ключа на Mac).

Не нужно использовать KeyEventsPlugin, JQuery или чистую привязку JS.

Смежные вопросы