因此,我有一個非常簡單的場景,其中有一個確認彈出窗口,顯示在下拉更改中。如果用戶選擇取消,我需要將下拉值恢復爲舊值。我認爲我做得很對,甚至在DOM中,ngModel的值與select
一起被反映出來。但不知何故,它不會恢復顯示中的選定值。這裏是我的代碼ngModel中的角度2更改未反映在下拉列表中
<select style="display: inline-block;width: 20%" class="form-control"
name="selectedClientVersion"
(change)="selectedCurrentVersion($event.target.value)"
[(ngModel)]="selectedClientVersion">
<option *ngFor="let i of clientVersions"
[selected]="i == 'selectedClientVersion' ">{{i}}</option>
</select>
selectedClientVersion='version1';
prevSelectedClientVersion='version1';
clientVersions=['version1', 'version2', 'version3'];
selectedCurrentVersion(val){
var r = confirm("Do you really want to chnage?");
if (r == true) {
this.prevSelectedClientVersion= this.selectedClientVersion= val;
} else {
this.selectedClientVersion=this.prevSelectedClientVersion;
//return false;
}
}
P.S我代替change
試圖ngModelChange
了。 更新:我已經搜索在計算器上類似的答案,並沒有發現該情況的處理這種情況,那裏的確認彈出的參與和值在Angular 2
基於將要恢復UPDATE2:這就是我想要做的,雖然在角2: Reset back to previous option on Select field if js Confirm returns false http://jsfiddle.net/CZ8F9/
@Aravind請仔細閱讀和理解的問題小心。不要僅僅通過閱讀標題來作出假設 –
從[selected] =「i =='selectedClientVersion'」'中刪除來自'selectedClientVersion'的引號,並寫爲[[selected] =「i == selectedClientVersion」' – SaiUnique
I m抱歉。檢查我的答案 – Aravind