Можно ли наблюдать за массивами внутри массивов, используя @each?
У меня есть контроллер, который содержит массив «вещей». Внутри каждой из этих вещей есть множество «субтитров». Я хотел бы создать вычисляемое свойство, которое содержит все субстанции во всех вещах (плоский массив субтитров).
Мое вычисленное свойство зависит от[email protected]
, Я считаю, что если яустановлен subthings
свойство вещи, мое вычисленное свойство обновляется. Однако если я позвонюpushObjects
добавить новые данные в мойсуществующий subthings
массив, мое вычисляемое свойство не обновляется.
Я создалjsfiddle показывать. Код выглядит следующим образом:
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);
Спасибо