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