Прямо сейчас это моя реализация для раскрывающегося списка Primeng -
cust.component.html -
<p-dropdown #dd1 [options]="custList" [ngModel]="selectedCust" placeholder="Select Account Id"
[style]="{'width':'200px'}" name="selectDropDown" optionLabel="userName"
(onChange)="dd1.value = changeCust($event.value)"></p-dropdown>
cust.component.ts -
private currentVal:Customer;
..
..
changeDEA(cust: Customer) {
var cfg = confirm("This action will stop the file upload. Do you still want to continue? ");
if(cfg){
this.currentVal = cust;
// Proceed with normal change event
}else{
console.log("user cancelled skip..");
this.selectedCust = this.currentVal;
// Should revert back to original value
return this.selectedCust;
}
Проблема в том, что значение вида, отображаемое на экране, не возвращается к исходному значению.
Ожидаемый результат -
В раскрывающемся списке значение A изменится на значение B.
Подтверждение пользователя - выберите «Отмена».
Страница должна по-прежнему отображать старое значение, то есть значение A.
Фактический результат -
В раскрывающемся списке значение A изменится на значение B.
Подтверждение пользователя - выберите «Отмена».
На странице должно отображаться новое значение B. (без использования Primeng, отображается пустое значение - https://stackblitz.com/edit/angular-dropwdown-confirmation-issue)
Добавление GIF -
Наткнулся на этот код, который отлично работает с собственным angular, но не работает, когда параметры заполняются динамически с помощью * ngFor - https://stackblitz.com/edit/angular-dropwdown-confirmation-issue
К вашему сведению, пробовал разные сообщения на github, но ни один из них не нашел полезного.
Угловая версия - "@ angular / core": "^ 5.2.0"
PrimeNG - "primeng": "^ 5.2.4"