首页 文章

Mat-Select选择当前选择的选项

提问于
浏览
0

我需要对选项选择做出反应 . 我的问题是,当我选择了选项A时,此组件不会发出事件( selectionChange 输出不会发出新事件),我打开选择窗格并再次选择选项A.事件没有被触发,因为选择没有改变,但在我的用例中我需要在这种情况下触发选择更改事件 . 有人知道怎么做吗?有没有办法在这个 mat-select 组件中覆盖 selectionModel ?我有一个链接列表,在选择其中任何一个后,即使用户再次选择相同的链接,我也需要做出反应 . 我正在使用 @angular/core@5.2.5@angular/material@5.2.1 .

这是我想要使用的这个组件的模板:

<mat-form-field>
    <mat-select placeholder="Search history"
        [disabled]="(links | async).length === 0"
        [value]="(links | async).length > 0 ? (links | async)[0] : null"
        (selectionChange)="onSearchHistorySelect($event.value)">
        <mat-option *ngFor="let l of links | async" [value]="l">{{l.title}}</mat-option>
    </mat-select>
</mat-form-field>

1 回答

  • 0

    您可以向选项添加单击事件,因此即使已选择该选项,也将调用该函数 .

    <mat-form-field>
        <mat-select [(ngModel)]="status">
          <mat-option *ngFor="let option of options" [value]="option.value (click)="myFunction()">
            {{ option.name }}
          </mat-option>
        </mat-select>
    </mat-form-field>
    

    我发现的唯一问题是你不能给函数选择选项的值(或者至少我找不到方法) . 但是你可以通过使用ngModel将值绑定到类中的属性来解决这个问题 .

    然后在你的函数中你可以调用这个属性(在我的例子中是this.status) .

    myFunction() {
      console.log(this.status);  // Do stuff with your selected value
    }
    

    希望这是你正在寻找的 .

相关问题