2012-12-26 69 views
0

我輸入「文件」頁下面的代碼放在emberjs.com http://emberjs.com/documentation/爲雙向綁定的emberjs.com示例代碼不起作用

但是,這並不表明我所期望的結果。 這是爲什麼?

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 

我期待得到90000當我輸入的console.log(App.wife.get( 'householdIncome'));, 作爲示例代碼上ember.js說。

有誰知道錯在哪裏? 請給我一個幫助。

謝謝!

回答

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 
});​ 
+0

我讀到了「注意綁定不立即更新」的句子。但是,我不明白這是什麼意思。現在我懂了!非常感謝你!!! – crzyonez777