这是我的模板
<mat-select [ngModel]="selected3">
<mat-option (onSelectionChange)="handleChange($event,srs.id)" *ngFor="let srs of schemas" [value]="srs.id">
{{srs.name}}
</mat-option>
</mat-select>
在handleChange()
中,变量selected3
的状态在NgRx存储中被更新,但是在我的选择中,未在mat-select下拉列表中选择该状态。如果我删除此(onSelectionChange)
事件,即不通过handleChange
调度存储动作,则选项选择有效。我不知道这里出了什么问题。
答案 0 :(得分:1)
<mat-select (selectionChange)="handleChange($event.value)" [ngModel]="selected3">
<mat-option *ngFor="let srs of schemas" [value]="srs.id">
{{srs.name}}
</mat-option>
</mat-select>
在(selectionChange)
标记内使用<mat-select>
事件,而不是(onSelectionChange)
;
答案 1 :(得分:0)
我通过将[[ngModel)]替换为[value]来解决了该问题,因为我们拥有mat-select的只读值,该值将在NgRx存储中进行修改。
<mat-select (selectionChange)="handleChange($event)"
[value]="selected3?.id">
<mat-option *ngFor="let srs of schemas" [value]="srs.id">
{{srs.name}}
</mat-option>
</mat-select>
在handleChange()中,我需要的是当前选定的srs的ID,该ID由$ event.value获取