javascript - 返回每个模型的属性总和的计算属性

标签 javascript ember.js ember-data computed-properties

我有一个购物车模型,里面有看起来像这样的元素

[
    {
        "item_id": 1,
        "item_name":"Item 1",
        "item_price": 500
    },
    {
        "item_id": 2,
        "item_name": "Item 2",
        "item_price": 230
    },
    {
        "item_id": 3,
        "item_name": "Item 3",
        "item_price": 150
    }
]

我需要汇总 item_price 属性才能显示它,然后将其传递给 ember 数据或 ajax 调用以完成购买。

不确定我是否只是不理解计算的聚合数据,但我正在尝试这个

totalDue: Ember.computed.sum('model.@each.item_price')

在 Controller 上但它返回 0

我在 ember 2.2.0

最佳答案

你可以这样做:

totalDue: Ember.computed('model.@each.item_price', function() {
  const model = this.get('model');
  if (!model) {
    return 0;
  }

  let sum = 0;
  model.forEach(item => sum += Ember.get(item, 'item_price'));
  return sum;
})

Working demo.

关于javascript - 返回每个模型的属性总和的计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34442227/

相关文章:

javascript - 获取div的X,Y位置

Javascript:如何处理 json 中的下一个项目 - 播放列表

javascript - Ember js 中的 hasMany 关联

ember.js - Ember 数据 : how to set isDirty for a record?

javascript - Chart.js 2 - 始终在气泡图中仅显示一些工具提示

ember.js - Ember Ember.select 获取选定值

ember.js - Ember - 在 findAll 之后对模型进行排序

javascript - Ember 路由指定不同的根 url

ember.js - 有人可以向我指出一个使用最新路由系统的 ember.js 项目吗?如果它也使用 ember-data 则奖励积分

javascript - 如果我在同一页面上使用两次 $.get() 函数,它会加载两次吗?