Я использую ngrx-store
, Angular 6
, ns-select
. Значение для ngrx исходит из магазина. Я хочу получить подтверждение в некоторых случаях, когда пользователь меняет раскрывающееся значение, что-то вроде «Вы уверены?». И теперь из-за двустороннего связывания данных с [(ngModel)]="value"
я не могу найти способ предотвратить изменение выпадающего значения. Пример кода:
<ng-select
[items]="items"
[(ngModel)]="value"
[bindLabel]="'name'"
[bindValue]="'id'"
[appendTo]="appendTo"
(change)="onChange($event)"
[disabled]="disabled"
>
<ng-template ng-label-tmp let-item="item">
<span *ngIf="item.icon" [ngClass]="[item.icon, 'lm-dropdown-icon']"></span>
<span>{{item.name}}</span>
</ng-template>
<ng-template ng-option-tmp let-item="item" let-index="index">
<span *ngIf="item.icon" [ngClass]="[item.icon, 'lm-dropdown-icon']"></span>
<span>{{item.name}}</span>
</ng-template>
</ng-select>
Когда я нажимаю на опцию раскрывающегося списка в onChange
значение обработчика уже изменилось, но в магазине оно остается прежним. Как я могу добиться чего-то вроде этого:
onChange(event) {
if (allowChange) {
this.change.emit(event);
}
}