如何在垫自动完成角度6中在Tab键上选择建议而不是Enter键?

时间:2019-02-06 06:21:47

标签: angular angular-material angular6

由于 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>

1 个答案:

答案 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);
    });
}

适当添加空检查。