【发布时间】:2012-04-23 17:50:17
【问题描述】:
假设我有一个模型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');
});
}
但我希望有更好的解决方案。
【问题讨论】:
标签: arrays ember.js observable