获取垫子选择中的选定选项(多个)



我有一个启用了多个选项的垫子选择框。当onSelectionChange事件发生时,formControl没有正确更新。为了更清楚,假设选择框包含选项:-opt-1、opt-2、opt-3、opt-4,并且当选择了opt-1时,formControl不会更新。当我们只选择下一个选项时,上一个值会更新。例如,如果我在opt-1之后选择opt-2,则只有opt-1会更新,如果我在此之后选择opt-3,则opt-1和opt-2会在formControl中更新,但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事件时,都会更新上一个值,而不是当前值。如何克服这个问题?

根据官方文档,您需要绑定<mat-select>元素,而不是<mat-option>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>

最新更新