我有一個簡單的Angular 2組件,它有一個選擇下拉列表,它具有與對象屬性的雙向綁定以及綁定到操作該對象的方法的更改事件。 這裏是組件選擇下拉onChange和ngModel問題
import {Component} from '@angular/core'
@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<h2>Hello {{name}}</h2>
<select (change)="save()" [(ngModel)]="testObject.selectVal">
<option [selected]="testObject.selectVal=='Value 1'">Value 1</option>
<option [selected]="testObject.selectVal=='Value 2'">Value 2</option>
<option [selected]="testObject.selectVal=='Value 3'">Value 3</option>
</select>
</div>
`,
directives: []
})
export class App {
testObject:any;
constructor() {
this.name = 'Angular2 (Release Candidate!)'
this.testObject = {
selectVal : "Value 2"
}
}
save(){
alert(this.testObject.selectVal);
}
}
當我改變了選擇,就應該警惕當前所選選項的值,而是它總是顯示選擇下拉菜單中的最後一個值。我有一種感覺,ngModel
更新和change
觸發器之間存在競爭狀態,因爲我試圖在save
方法中的警報提前延遲並且它似乎正常工作。
爲了演示它更好,我已經安裝了一個演示文稿here。
好點,但主要問題仍然存在。該值仍未按時更新。 – xmaestro
使用'(ngModelChange)=「save()」'而不是 –
這也沒有幫助 – xmaestro