admin管理员组

文章数量:1289761

How can we select mat option when press on tab key?, it should work like enter button in mat-autoplete angular 6... In below URL its working when press enter, but whenever we press tab button it should select highlighted option.

<mat-form-field class="example-full-width">
    <input type="text" placeholder="Pick one" aria-label="Number" matInput [formControl]="myControl" [matAutoplete]="auto">
    <mat-autoplete #auto="matAutoplete">
      <mat-option *ngFor="let option of options" [value]="option">
        {{option}}
      </mat-option>
    </mat-autoplete>
  </mat-form-field>

Demo

How can we select mat option when press on tab key?, it should work like enter button in mat-autoplete angular 6... In below URL its working when press enter, but whenever we press tab button it should select highlighted option.

<mat-form-field class="example-full-width">
    <input type="text" placeholder="Pick one" aria-label="Number" matInput [formControl]="myControl" [matAutoplete]="auto">
    <mat-autoplete #auto="matAutoplete">
      <mat-option *ngFor="let option of options" [value]="option">
        {{option}}
      </mat-option>
    </mat-autoplete>
  </mat-form-field>

Demo

Share Improve this question edited Mar 8, 2019 at 7:57 Sven Hakvoort 3,6213 gold badges18 silver badges35 bronze badges asked Mar 8, 2019 at 7:05 vinaykumar0459vinaykumar0459 5071 gold badge6 silver badges19 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 9

You can subscribe to this.autoTrigger.panelClosingActions, see stackblitz

If your .html is like

<mat-form-field class="example-full-width">
    <!--see the reference variable-->
    <input #typehead type="text" ...>
    <mat-autoplete #auto="matAutoplete">
       ...
    </mat-autoplete>
</mat-form-field>

In your .ts

@ViewChild( 'typehead', {read:MatAutopleteTrigger})  autoTrigger: MatAutopleteTrigger; 

ngAfterViewInit()
  {
    this.autoTrigger.panelClosingActions.subscribe( x =>{
      if (this.autoTrigger.activeOption)
      {
        console.log(this.autoTrigger.activeOption.value)
        this.myControl.setValue(this.autoTrigger.activeOption.value)
      }
    } )
  }

Update a better aproach (using a directive) in this answer

本文标签: