由于 MatAutocomplete (角度6)具有 keydown
和 keyup
的默认行为,用于选择选项和< strong> Enter
作为选择的输入值。
我想使用tab
而不是enter
键。
请提出建议
代码:
<input matInput [matAutocomplete]="origin">
<i class="material-icons search-form-icon">place</i>
<mat-autocomplete #origin="matAutocomplete">
<mat-option *ngFor="let v of originList" [value]="v.value"> {{v.text}} </mat-option>
</mat-autocomplete>
答案 0 :(得分:1)
请查阅MatAutocompleteTrigger文档,以详细了解此触发器的工作方式及其提供的可观察的事物。
解决方案:
在模板中的此MatAutocompleteTrigger组件中设置一个ChildView属性。
@ViewChild(MatAutocompleteTrigger, {static: false}) trigger: MatAutocompleteTrigger;
在AfterViewInit生命周期挂钩中订阅有关此触发器属性的panelClosingActions。将FormControl值设置为触发值的activeValue。
ngAfterViewInit() {
this.trigger.panelClosingActions.subscribe(() => {
myControl.setValue(this.trigger.activeOption.value);
});
}
适当添加空检查。