【问题标题】:Fetching selected options in mat-select (multiple)在 mat-select 中获取选定的选项(多个)
【发布时间】:2020-11-29 06:45:17
【问题描述】:

我有一个启用了多个选项的垫选择框。当 onSelectionChange 事件发生时,formControl 没有正确更新。 要更清晰,假设选择框是否包含选项: - Opt-1,Opt-2,Opt-3,Opt-4以及选择Opt-1时,不更新FormControl。当我们只选择下一个选项时,之前的值会被更新。例如,如果我在 opt-1 之后选择 opt-2,则只会更新 opt-1,如果之后选择 opt-3,则在 formControl 中更新 opt-1 和 opt-2,但不会更新 opt-3更新。下面是我的示例代码。

<mat-select formControlName="selectme" multiple>
   <mat-option *ngFor="let opt for Options" [value]="opt" (onSelectionChange)="printFormControlValue()">
      {{opt}}
   </mat-option>
</mat-select>

//ts file
printFormControlValue(){
console.log(this.formGroup.value.selectme);
}

每次触发 onSelectionChange 事件时,都会更新之前的值,而不是当前值。如何克服这个问题?

【问题讨论】:

    标签: angular drop-down-menu


    【解决方案1】:

    根据官方文档,你需要绑定&lt;mat-select&gt;元素而不是&lt;mat-option&gt; https://material.angular.io/components/select/api

    <form [formGroup]="formGroup">
      <mat-form-field appearance="fill">
        <mat-select formControlName="selectme" multiple (selectionChange)="printFormControlValue($event)">
          <mat-option *ngFor="let opt of Options" [value]="opt" >
             {{opt}}
          </mat-option>
       </mat-select>
      </mat-form-field>
    </form>
    

    【讨论】:

    • 事情就像我需要知道最后选择了哪个选项。因为它有多个选择选项,我无法跟踪最后选择了哪个
    猜你喜欢
    • 1970-01-01
    • 2020-10-30
    • 2019-08-07
    • 2022-10-13
    • 1970-01-01
    • 2021-12-24
    • 2019-10-03
    • 2018-07-20
    • 2019-04-16
    相关资源
    最近更新 更多