ValueChanges事件未在Angular 6-反应形式的第一枪中触发

时间:2019-03-01 04:34:58

标签: angular typescript reactive-forms

我在TypeScript文件中定义了一个函数,该函数订阅了反应式Form(角度6)中表单控件的ValueChanges功能。

但是我在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;
            });
        }
      });
  }

我从typeScript文件中的ngOnInit()方法和html文件中的FormControl调用上述方法:

 <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>

0 个答案:

没有答案