我注意到可枚舉的mixin計算的屬性取決於'[]'
屬性,而餘燼數組也具有'@each'
屬性。ember.js中'[]'屬性和'@each'屬性有什麼區別?
根據'[]'
和'@each'
有什麼不同?
我的模糊理解(糾正我,如果我錯了)是'[]'
是在數組內容被替換時觸發的。但是,這是不是取決於財產本身?
考慮下面的類:
C = Ember.Object.extend({
things: null,
watcher1: (function() {
console.log('watcher1')
}).observes('things.[]'),
watcher2: (function() {
console.log('watcher2')
}).observes('[email protected]')
});
我如下創建一個實例:
c = C.create({things: Ember.A(['a', 'b'])});
以下:
c.get('things').replace(0, 1, ['z'])
觸發watcher1
和watcher2
及以下:
c.get('things').setObjects(['1', '2'])
也觸發watcher1
和watcher2
一樣:
c.get('things').addObject('v')
那麼,有什麼區別嗎?我們應該什麼時候使用一個與另一個?
謝謝! 凱文
謝謝!非常徹底和清晰,我欣賞jsbins。 – 2013-08-14 19:33:46
當前的官方文檔 - http://emberjs.com/api/classes/Ember.Array.html#property__each使得它很清楚何時使用哪個。 – 2015-06-02 04:41:23