Как отменить выбор в ng-select? - PullRequest
0 голосов
/ 14 ноября 2018

Я использую 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);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...