¿Cuál es la diferencia entre la propiedad '[]' y la propiedad '@each' en ember.js?
He notado que la mezcla enumerable tiene propiedades computadas que dependen de la'[]'
propiedad, mientras que las matrices de brasas también tienen la'@each'
propiedad.
¿Cuál es la diferencia entre dependiendo de'[]'
y'@each'
?
Mi vaga comprensión (corrígeme si me equivoco) es eso'[]'
se activa cuando se reemplaza el contenido de la matriz. Pero, ¿es esto diferente a depender de la propiedad en sí?
Considere la siguiente clase:
C = Ember.Object.extend({
things: null,
watcher1: (function() {
console.log('watcher1')
}).observes('things.[]'),
watcher2: (function() {
console.log('watcher2')
}).observes('things.@each')
});
Y creo una instancia de la siguiente manera:
c = C.create({things: Ember.A(['a', 'b'])});
El seguimiento:
c.get('things').replace(0, 1, ['z'])
desencadenawatcher1
ywatcher2
Y lo siguiente:
c.get('things').setObjects(['1', '2'])
también desencadenawatcher1
ywatcher2
Al igual que:
c.get('things').addObject('v')
Entonces, ¿hay alguna diferencia? ¿Cuándo debemos usar uno frente al otro?
¡Gracias! Kevin