Событие ValueChanges, не вызванное первым выстрелом в Angular 6 - Реактивная форма - PullRequest
0 голосов
/ 01 марта 2019

В моем файле TypeScript определена функция, которая подписывается на функцию ValueChanges элемента управления формы в реактивной форме (Angular 6).

Однако я вызываю эту функцию в методе ngOnInit (), но каким-то образомэто не происходит внутри сервисного вызова в этом методе.И затем, когда я иду на свой экран, который содержит элемент управления формы и начинаю что-то печатать, он не возвращает никакого результата (так как вызов службы не вызывается), но если я размываю из этого formControl и снова возвращаюсь к этому элементу управления формы, и начинаюнабрав, он вернет результат во втором кадре.Не ясно, что мне не хватает в потоке.

myrequestComponent.ts

searchUsersDetails() {
      console.log('Inside method');
      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;
            });
        }
      });
  }

Я вызываю вышеуказанный метод из метода ngOnInit () в файле typeScript и FormControlв моем HTML-файле:

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