Javascript Ember.js绑定教程
根据余烬,此代码片段应该设置Javascript Ember.js绑定教程,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,根据余烬,此代码片段应该设置App.wife实例的houseHoldIncome属性 App.wife = Ember.Object.create({ householdIncome: 80000 }); App.husband = Ember.Object.create({ householdIncomeBinding: 'App.wife.householdIncome' }); App.husband.get('householdIncome'); // 80000
App.wife
实例的houseHoldIncome
属性
App.wife = Ember.Object.create({
householdIncome: 80000
});
App.husband = Ember.Object.create({
householdIncomeBinding: 'App.wife.householdIncome'
});
App.husband.get('householdIncome'); // 80000
// Someone gets raise.
App.husband.set('householdIncome', 90000);
console.log(App.wife.get('householdIncome')); // 90000
console.log(App.fixer.get('householdIncome'))
仍然输出80000。这是因为绑定没有立即更新,还是我做错了什么
编辑:绑定似乎不会立即更新
App.wife.addObserver('householdIncome', function() {
console.log('Wife income changed: '+App.wife.get('householdIncome'));
});
这将输出更新的收入。这是预期的行为,因为余烬使用一个名为。这样做的好处是,模型atribute中的几个更改(例如foreach中的更改)将只渲染一次。因此,您不需要关心性能,在观察者和dom更新中 如果使用
Ember.run.sync()
可以强制绑定刷新,以便看到正在传播的更改:
App.wife = Ember.Object.create({
householdIncome: 80000
});
App.husband = Ember.Object.create({
householdIncomeBinding: 'App.wife.householdIncome'
});
App.husband.get('householdIncome'); // 80000
// Someone gets raise.
App.husband.set('householdIncome', 90000);
Ember.run.sync();
console.log(App.wife.get('householdIncome')); // 90000
在那把小提琴里,你会看到妻子家庭收入财产正在更新