¿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

Respuestas a la pregunta(1)

Su respuesta a la pregunta