我注意到可枚举的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')
});
Run Code Online (Sandbox Code Playgroud)
我创建一个实例如下:
c = C.create({things: Ember.A(['a', 'b'])});
Run Code Online (Sandbox Code Playgroud)
下列:
c.get('things').replace(0, 1, ['z'])
Run Code Online (Sandbox Code Playgroud)
触发器watcher1和watcher2
以下内容:
c.get('things').setObjects(['1', '2'])
Run Code Online (Sandbox Code Playgroud)
也触发watcher1和watcher2
同样如下:
c.get('things').addObject('v')
Run Code Online (Sandbox Code Playgroud)
那有什么区别吗?我们何时应该使用一个与另一个?
谢谢!凯文