Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular material 如何在NgRx商店中更改mat select的型号_Angular Material_Ngrx_Ngrx Store - Fatal编程技术网

Angular material 如何在NgRx商店中更改mat select的型号

Angular material 如何在NgRx商店中更改mat select的型号,angular-material,ngrx,ngrx-store,Angular Material,Ngrx,Ngrx Store,这是我的模板: <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> {{srs.name} 在ha

这是我的模板:

<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>

{{srs.name}
handleChange()
中,变量
selected3
的状态会在NgRx存储中更新,但在我的选项中,它不会在mat select下拉列表中被选中。如果我删除此
(onSelectionChange)
事件,即不通过
handleChange
发送存储操作,则选项选择有效。我不知道这里出了什么问题。


<mat-select (selectionChange)="handleChange($event.value)" [ngModel]="selected3">
    <mat-option  *ngFor="let srs of schemas" [value]="srs.id">
      {{srs.name}}
    </mat-option>
 </mat-select>
{{srs.name}

标记中使用
(选择更改)
事件,而不是
(选择更改)

我通过将[(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>

{{srs.name}

handleChange()中我需要的是当前所选srs的id,我通过$event.value获取。您是否使用Observables访问NgRx存储?@SanthoshV我尝试过[(ngModel)],但没有使用
(selectionChange)
事件而不是
(onSelectionChange)标记
@sparkCountain是的,我使用的是可观测值,但问题是,当mat select尝试更改模型值时,Store不允许这样做,因为它是UI的只读值