1

我有一个数组控制器,其中包含一个模型列表,其中包括一个数字量(即美元值)。

最初,模型包含 1 行,数量为 0,因为用户向模型添加行并更改我希望在列表底部保持运行总计的数量。

我使用 Ember 大约需要 4 个小时,但我不太明白如何在计算属性中迭代模型并返回总和,最重要的是,在我向模型添加值时让它重新计算。

我正在尝试使用的是:

totalLoanAmount: function() {
 var t = 0;
  var amounts = this.get('content.@each.amount').toArray(); 
  for (index = 0; index < amounts.length; index++) {
      t += amounts[index];
  }

return t;
}.property('content.@each.amount'),

但这似乎没有更新,因为我将项目添加到模型中。

4

1 回答 1

1

依赖键部分对我来说是正确的。但我不相信你可以用@each你在代码第三行尝试的方式来映射属性。 编辑:好的,事实证明你可以这样做,尽管我找不到任何表明这是推荐或预期的文档。

我相信,快速解决方法是使用var amounts = this.get('content').mapBy('amount').

但是您也可以考虑使用 Ember 的功能重构此函数,如此reduce所示。

于 2013-10-17T20:37:02.510 回答