And*_*ico 5 angular-material angular
在这个Stackblitz中,我有一个带有异步数据的 mat-autocomplete。
当(optionSelected)触发时(当我单击一个选项时),我希望该字段完全重置,就像它刚刚渲染/初始化一样。
目前这个解决方案有两个问题!
==> 我确实必须再次模糊并聚焦或开始打字。
mat-option.mat-selected类附加到面板,因为重置只影响输入值。我用 突出显示了这一点background-color: red;。小智 8
您需要将重置功能设置为如下所示
resetAutoInput(optVal, trigger: MatAutocompleteTrigger, auto: MatAutoComplete) {
setTimeout(_ => {
auto.options.forEach((item) => {
item.deselect()
});
this.myControl.reset('');
trigger.openPanel();
}, 100);
}
Run Code Online (Sandbox Code Playgroud)
在你的 HTML 代码中将是
<input type="text" placeholder="Pick one" aria-label="Number" matInput [formControl]="myControl" #trigger="matAutocompleteTrigger" [matAutocomplete]="auto">
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="resetAutoInput($event.option.value, trigger, auto);">
<mat-option *ngFor="let option of filteredOptions | async" [value]="option">
{{option}}
</mat-option>
</mat-autocomplete>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12498 次 |
| 最近记录: |