Как сменить модель коврика в магазине NgRx - PullRequest
0 голосов
/ 16 января 2020

Это мой шаблон:

<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, выбор опции работает. Я не знаю, что здесь происходит.

Ответы [ 2 ]

1 голос
/ 16 января 2020
<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);

0 голосов
/ 17 января 2020

Я исправил проблему, заменив [(ngModel)] на [значение], поскольку у нас есть значение только для чтения для 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, которые я получаю по $ event.value

...