我在emberjs.com的“文档”页面上输入以下代码 http://emberjs.com/documentation/
但是,它没有显示我期望的结果。 那是为什么?
App.wife = Ember.Object.create({
householdIncome: 80000
});
App.husband = Ember.Object.create({
householdIncomeBinding: 'App.wife.householdIncome'
});
console.log(App.husband.get('householdIncome')); //it shows 80000
App.husband.set('householdIncome', 90000);
**console.log(App.wife.get('householdIncome')); // it shows 80000 not 90000**
console.log(App.husband.get('householdIncome')); // this shows 90000
当我输入console.log(App.wife.get('householdIncome'));时,我希望得到90000, 正如ember.js上的示例代码所说的那样。
有谁知道什么是错的? 请给我一个帮助。
谢谢!
答案 0 :(得分:1)
从相同的文档:
请注意,绑定不会立即更新。在同步更改之前,Ember等待所有应用程序代码完成运行,因此您可以根据需要多次更改绑定属性,而不必担心在值是瞬态时同步绑定的开销。
您可以使用Ember.Run.next包装console.log语句,以确保在运行之前应用绑定更新。
App.husband.set('householdIncome', 90000);
Ember.run.next(function() {
console.log("her income: " + App.wife.get('householdIncome')); // it shows 90000
console.log("his income: " + App.husband.get('householdIncome')); // it also shows 90000
});