2017-07-07 45 views
2

我有一個select在角2角2選擇集合中選擇項目

<select [(ngModel)]="selectedItem"> 
<option [ngValue]="'<empty>'"></option> 
<option *ngFor="let e of range" [ngValue]="e.value">{{e.display}}</option> 
</select> 

注意,有在頂部的「空」選項。每次用戶選擇一個選項時,我想要處理所選項目,然後將第一個空選項設置爲。我已經嘗試添加(change)ngModelChange處理程序,並可以將selectedItem設置爲我想要的任何值,但這並不會更改顯示的選定選項

回答

0
<select [(ngModel)]="selectedItem" (ngModelChange)="processSelectedItem();selectedItem = range[0]"> 

您也可以移動到selectedItem = range[0]processSelectedItem() { ... }

+0

你可以嘗試注入'私人cdRef:ChangeDetectorRef'然後在'processSelected(){/ * *程序/; this.selectedItem = null; this.cdRef.detectChanges(); this.selectItem = this.range [0];/* this.cdRef.detectChanges(); * /}'。將值設回原先的值會混淆變化檢測。使用這種代碼更改檢測應該能夠檢測到它。不確定是否需要註釋掉第二個'detectChanges()'。 –

+0

非常感謝,使用'ChangeDetectorRef'解決了這個問題。 –

+0

不客氣。很高興聽到 :) –