#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";