Предположим, у меня есть модель Stock
, в которой есть несколько StockPartition
(это свойство называется partitions
, это массив).
Модель Stock
имеет свойство usedAmount
, которое должно изменяться при изменении любого из всех partition.amount
и, конечно же, обновляться при добавлении/удалении раздела.
Пример :
stock.get('usedAmount') -> 0
stock.get('partitions') -> [Class, Class, Class]
stock.get('partitions')[0].set('amount', 12)
stock.get('usedAmount') -> I want here to return 12
stock.get('partitions')[1].set('amount', 12)
stock.get('usedAmount') -> I want here 24
Как Stock
мог наблюдать за каждым partitions.amount
? Я могу написать функцию addPartition
, которая выглядит так:
addPartition: function(partition) {
partition.addObserver('amount', function() {
this.get('owner').notifyPropertyChange('usedAmount');
});
}
Но я надеюсь, что есть лучшее решение.