ember.js - 模型实例的计算属性依赖于所有实例

标签 ember.js ember-data

我想观察模型每个实例的变化。考虑到这个小例子,当某个类别的项目数量发生变化时,每个其他类别的百分比值也应该发生变化。在此示例中,它不会更新百分比值:

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)

最佳答案

我认为计算属性percentValue属于Ember.ArrayController,您可以在其中访问@each

关于ember.js - 模型实例的计算属性依赖于所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17399841/

相关文章:

javascript - 什么是 Ember.bind 以及它是如何工作的?

testing - 在测试中获取 Ember 属性返回未定义

ember.js - Ember 从模型中的 Controller 获取属性

ember.js - ember 数据未找到属性名称的模型

javascript - Ember 3.5 属于关系未解决

ember.js - 支持转换到新对象的方法

javascript - Ember 嵌套路由和渲染模型

ember.js - CORS飞行前 channel 未成功

express - JSONAPI 指定的访客和授权用户的序列化器 `User` 模型的最佳实践是什么?

ember.js - ember-data 真的支持嵌套 url 吗?