É possível observar matrizes dentro de matrizes usando @each?
Eu tenho um controlador que contém uma matriz de "coisas". Dentro de cada uma dessas coisas há uma matriz de "sub-coisas". Gostaria de criar uma propriedade computada que contenha todas as sub-coisas em todas as coisas (uma matriz achatada de sub-coisas
Minha propriedade calculada depende de[email protected]
. Acho que se euconjunt asubthings
propriedade de uma coisa, minha propriedade computada é atualizada. No entanto, se eu ligar parapushObjects
para adicionar novos dados ao meuexisti subthings
array, minha propriedade computada não é atualizad
Eu criei um jsfiddle para demonstrar. O código é o seguinte:
App = Em.Application.create({});
App.controller = Em.Object.create({
things: [
Em.Object.create({subthings:[]}),
Em.Object.create({subthings:[]}),
Em.Object.create({subthings:[]})
],
allSubThings : function() {
var things = this.get('things');
var results = [];
things.forEach( function(thing) {
results.pushObjects( thing.get('subthings') );
});
return results;
}.property('[email protected]').cacheable()
});
setTimeout(function() {
var things = App.controller.get('things');
// This works:
things.objectAt(0).set('subthings',[1,2,3]);
}, 1000);
setTimeout(function() {
var things = App.controller.get('things');
// This does not:
things.objectAt(1).get('subthings').pushObjects([1,2,3]);
}, 2000);
Obrigad