Как мне зарегистрироваться для события keyup с использованием реактивных форм NG2

#angular #angular2-forms

#angular #angular2-forms

Вопрос:

В NG2, декларативно:
вы можете использовать (keyup.enter) для регистрации событий «нажмите-введите». Вот так:

 <input type="text" #txtEnteredMessage (keyup.enter)="sendMessage(txtEnteredMessage.value);">
  

В NG2 реактивные формы:
Я могу использовать наблюдаемые valueChanges для прослушивания изменений. Но это не срабатывает при нажатии enter.

Как мне зарегистрироваться для событий keyup.enter с использованием реактивных форм (= formcontrol)?

Ответ №1:

Найдено решение, которое использует Subject:

 //inside your hml file 
<input type="text" (keyup.enter)="txtMessageEnter$.next();">

//inside your .ts file
constructor() {       
   this.txtMessageEnter$ = new ReplaySubject<any>();
}
...
this.txtMessageEnter$.subscribe(...)
  

Комментарии:

1. import { ReplaySubject } from "rxjs/Rx";