我在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;
});
}
});
}
答案 0 :(得分:0)
(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 => ...)