我注意到可枚举的 mixin 具有依赖于该属性的计算属性'[]'
,而 ember 数组也具有该'@each'
属性。
取决于'[]'
和 和有什么不一样'@each'
?
我的模糊理解(如果我错了,请纠正我)是'[]'
在替换数组内容时触发的。但这与取决于财产本身不同吗?
考虑以下类:
C = Ember.Object.extend({
things: null,
watcher1: (function() {
console.log('watcher1')
}).observes('things.[]'),
watcher2: (function() {
console.log('watcher2')
}).observes('things.@each')
});
我创建一个实例如下:
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')
那么有什么区别吗?我们什么时候应该使用一个与另一个?
谢谢!凯文