我有一个简单的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