html - 角度材料两个自动完成字段(optionSelected)不起作用
问题描述
我在 (optionSelected) 之后重新发送请求以更新第二个自动完成的输入值时遇到问题。
我有两个自动完成字段。在第一个中更改值后,第二个从 api 获取值。但是,当我删除第一个字段中的值时,第二个自动完成字段的查询不会更新。
这是我的代码示例:
OnProvinceSelected(event) {
this.provinceId = event.id;
this.filteredOptionsCountie = this.step.get('province').valueChanges.pipe(
startWith(''),
debounceTime(400),
distinctUntilChanged(),
map(val => typeof val === 'string' ? val : val.name),
switchMap(val => {
return this.filterCountie(val || '');
}),
finalize(() => console.log('Sequence complete'))
);
}
filterCountie(val: string): Observable<Location[]> {
return this.service.getDataCounties(this.provinceId)
.pipe(
map(response => response.filter(option => {
return option.name.toLowerCase().indexOf(val.toLowerCase()) === 0;
})),
finalize(() => console.log('Sequence complete'))
);
}
<input formControlName="province"
type="text"
[matAutocomplete]="provinceA">
<mat-autocomplete #provinceA="matAutocomplete" [displayWith]="displayFn" (optionSelected)="OnProvinceSelected($event.option.value)">
<mat-option *ngFor="let option of filteredOptionsProvinces | async" [value]="option">
{{option.name}}
</mat-option>
</mat-autocomplete>
<input formControlName="countie"
type="text"
[matAutocomplete]="countieA">
<mat-autocomplete #countieA="matAutocomplete" [displayWith]="displayFn" (optionSelected)="OnCountieSelected($event.option.value)">
<mat-option *ngFor="let option of filteredOptionsCountie | async" [value]="option">
{{option.name}}
</mat-option>
</mat-autocomplete>
解决方案
推荐阅读
- docker - 从 travis 部署到 Digital Ocean Droplet
- mysql - 写一个查询,找到在mysql中演过电影数量第三多的演员的全名?
- python - IndexError:列表索引超出范围:sys.argv[1] 超出范围
- llvm - LLVM pass 不执行单个静态分配
- python - 如何在 Flask 应用程序中正确更新博客文章上的标签?
- ansi-escape - 是否有一个 ansi 转义序列来为空白区域设置颜色?
- python - 关于重复行的 Panda If 语句
- python-3.x - 列表中的Python排列字符串
- node.js - Heroku 部署 graphql 空白页
- angular - 如果使用引导日期时间选择器在输入字段中没有日期,如何将日历打开到今天的日期