モデルの各インスタンスの変化を観察したいと思います。この小さな例を考えると、カテゴリのアイテム数が変わると、他のカテゴリごとにパーセント値が変わるはずです。この例では、percentValue は更新されません。
App.Category = DS.Model.extend({
name: DS.attr('string'),
items: DS.hasMany('App.Item'),
percentValue: function() {
var total_items = App.Item.all().get('length')
var category_items = this.get('items').get('length')
return total_items == 0 ? 0 : (100 * category_items / total_items).toFixed()
}.property('@each.items.length')
})
App.Item = DS.Model.extend({
name: DS.attr('string'),
})
category = App.Category.createRecord({name: 'Category1'})
item = App.Item.createRecord({name: 'Item1'})
category.get('items').pushObject(item)