model - Ember.js:计算所有子模型的属性总和

标签 model ember.js

我的应用程序具有以下模型:

App.Store = DS.Store.extend({
    revision: 11,
    adapter: 'DS.FixtureAdapter'
});

App.List = DS.Model.extend({
    name: DS.attr('string'),
    users: DS.hasMany('App.User'),
    tweetsUnread: function(){
        /////////////////////////////////////////
        // Code to dynamically calculate the sum 
        // of tweetsUnread property of all
        // App.User that are related to this list
        /////////////////////////////////////////
    }
});

App.User = DS.Model.extend({
    screenName: DS.attr('string'),
    tweets: DS.hasMany('App.Tweet'),
    tweetsUnread: function(){
        // TODO: check if this is the correct way to do it
        return this.get('tweets').get('length');
    }.property('tweets.@each'),
    list: DS.belongsTo('App.List')
});

App.Tweet = DS.Model.extend({
    text: DS.attr('string'),
    user: DS.belongsTo('App.User')
});

如何计算所有 App.User.tweetsUnread 的总和并使其自动更新 App.List.tweetsUnread?

最佳答案

另一种选择是使用 Ember.computed.sumhere

App.List = DS.Model.extend({
  name: DS.attr('string'),
  users: DS.hasMany('App.User'),

  tweetsUnread: Ember.computed.mapBy('users', 'tweetsUnread'),
  totalTweetsUnread: Ember.computed.sum('tweetsUnread')   
});

关于model - Ember.js:计算所有子模型的属性总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15933633/

相关文章:

ember.js - 如何在 ember.js 模板中使用自动对焦?

javascript - 如何 console.table(array) 只显示数组元素,而不是方法(Ember Array)

ruby-on-rails - 将内联模板更新到 Ember 1.0 pre 2

javascript - 如何在使用 ng-options 时将所选选项的文本分配给另一个模型?

string - 在Groovy/Grails中使模型名称易于阅读

ember.js - 为什么我应该在 NPM 或 yarn 上使用 ember install?

javascript - 在 ES6 中使用事件发射器的最简单方法

mysql - 带 OR 运算符的 Where 子句 Model_Crud、FuelPHP

tensorflow - 无法使用tensorflow 2.0.0 beta1保存模型

json - 如何在生产中的 Flutter 应用程序中更改数据模型?