Я полагаю, что вы ищете ng-привязку к элементу Angular. Например, вы можете привязать нажатия клавиш и размыть их следующим образом для поля ввода:
<input type=text (blur)="validate()" (keypress)="eventHandler($event)">
eventHandler(event) {
console.log(event, event.keyCode, event.keyIdentifier);
// Update value of string on every keystroke
}
validate() {
// Validation code goes here
}
Вы также можете использовать ngModel, и тогда вам вообще не придется беспокоиться о нажатии клавиш, потому что строка будет автоматически обновляться для вас. Это будет выглядеть примерно так:
<input [(ngModel)]="name" (blur)="validate()">
name: string;
validate() {
// Validation code goes here
}
Поскольку вы рассматриваете использование модуля Reactive Forms и его проверку, вы можете сделать что-то вроде этого:
Шаблонный подход
<input [(ngModel)]="lastname" [ngModelOptions]="{ updateOn: 'blur' }">
Привязка ngModel будет изменять ввод при каждом нажатии клавиши, поэтому вам не придется делать это вручную. Я бы действительно предложил использовать этот подход, поскольку именно этого вы сейчас и просите.
Подход реактивных форм
this.nameForm = new FormGroup ({
firstname: new FormControl('', {
validators: Validators.required,
updateOn: 'submit'
}),
lastname: new FormControl('', {
validators: Validators.required,
updateOn: 'submit'
})
});
Ссылки: Подход SO Средний Артикул