Как прочитать значение текстового поля при наборе текста внутри текстового поля в Angular 6 (Реактивная форма) - PullRequest
0 голосов
/ 01 марта 2019

У меня есть текстовое поле в реактивной форме в Angular 6, и я хочу прочитать значение поля текстового поля сразу, когда я набираю текст в текстовом поле (а не при размытии из этого текстового поля.).

Событие ValueChanges происходит только тогда, когда я размываю это текстовое поле.

Мое намерение - получить значение текстового поля во время ввода текста в текстовом поле.

component.html

<kendo-autocomplete formControlName="requestedFor" class="form-control" placeholder="Type User" style="height:3.25rem" [data]="this.userNames" 
                        (keydown)="this.searchUsersDetails()"  required >
</kendo-autocomplete>

component.ts

searchUsersDetails() {
    console.log('Onkey up');
    console.log('control value::: ' + this.requestForm.controls.requestedFor.value);
    this.requestForm.controls.requestedFor.valueChanges.subscribe(
    term => {
      if (term !== '') {
          console.log('term::' + term);
        this.dataService.searchUsers(term).subscribe(
          data => {
              this.userDetails = data;
              const userNamesTmp = new Array(this.userDetails.length);
              this.userDetails.forEach(function (userDetailTmp) {
                  userNamesTmp.push(userDetailTmp.name);
              });
              this.userNames = userNamesTmp;
          });
      }
    });
}

1 Ответ

0 голосов
/ 01 марта 2019
(keydown)="this.searchUsersDetails()"

searchUsersDetails() {
   ...
   this.requestForm.controls.requestedFor.valueChanges.subscribe(...)

Просто ... нет.

Подписаться на valueChanges Observable<any> через OnInit (ngOnInit метод)

this.requestForm.controls.requestedFor
                         .valueChanges
                         .pipe(startWith(undefined))
                         .subscribe(v => ...)
...