我灰燼文檔我可以成立一個結合使用類似的片段中看到的全球範圍)。 我需要實現類似於此:如何設置綁定在灰燼
Ember.bind(obj1, "obj1AttributeName", obj2, "obj2AttributeName");
建議,歡迎。 謝謝!
我灰燼文檔我可以成立一個結合使用類似的片段中看到的全球範圍)。 我需要實現類似於此:如何設置綁定在灰燼
Ember.bind(obj1, "obj1AttributeName", obj2, "obj2AttributeName");
建議,歡迎。 謝謝!
綁定可以直接連接到一個對象。 from
和to
路徑相對於它們所連接的對象進行評估。這些路徑也可以是全局的。
退房的docs and implementation爲Ember.bind
助手:
/**
Global helper method to create a new binding. Just pass the root object
along with a `to` and `from` path to create and connect the binding.
@method bind
@for Ember
@param {Object} obj The root object of the transform.
@param {String} to The path to the 'to' side of the binding.
Must be relative to obj.
@param {String} from The path to the 'from' side of the binding.
Must be relative to obj or a global path.
@return {Ember.Binding} binding instance
*/
Ember.bind = function(obj, to, from) {
return new Ember.Binding(to, from).connect(obj);
};
所以,你必須決定哪些對象要連接的結合,直接,以及如何引用其他對象。你有幾個選擇:
A)提供了兩個對象之間的一些關係,然後用bind()
連接相對路徑:
obj1.set('friend', obj2);
Ember.bind(obj1, 'obj1AttributeName', 'friend.obj2AttributeName');
B)提供一個全球性路徑的的from
側綁定:
App.set('obj2', obj2); // make obj2 accessible from the App namespace
Ember.bind(obj1, 'obj1AttributeName', 'App.obj2.obj2AttributeName');
下面的例子你怎麼可以設置綁定,我已經採取了從ember.js網站(http://emberjs.com/guides/object-model/bindings/)的例子,它定製,以你的問題,
App.wife = Ember.Object.create({
householdIncome: null
});
App.husband = Ember.Object.create({
householdIncomeBinding: 'App.wife.householdIncome'
});
App.husband.get('householdIncome'); // null
// if you now set the householdIncome to a new Ember.Object
App.husband.set('householdIncome', Ember.Object.create({amount:90000}));
// with bindings working you should be able to do this
App.wife.get('householdIncome.amount'); // 90000
希望它有助於
感謝您的信息。 順便說一句你知道爲什麼綁定API看起來像這樣嗎? 從我的角度來看,當前的綁定API在很多情況下都可以很好地適用,但同時會出現通用綁定API會更好的情況。我不認爲我應該強制要麼在兩個對象之間建立直接聯繫,要麼爲至少一個對象提供全局路徑。 – Flexer 2013-05-05 21:46:11
這是一個很好的問題。在定義模型,視圖,控制器和模板時,綁定通常會被連接起來,而不是臨時創建的。在所有典型的用例中,綁定可以連接到一個對象,並只引用另一個對象(或通過全局引用)。我認爲綁定的設計是爲了滿足這些用例,並且由於缺乏需求而永遠不會進一步擴展。這也是一個敏感的性能領域,所以如果沒有真正的好的原因,就可能不願意改變這種核心功能。 – 2013-05-06 13:36:30