Ember.js从控制器绑定到Ember.Object中的计算属性不起作用

时间:2014-04-19 21:10:40

标签: javascript binding ember.js properties controller

现在我和Ember js合作了一段时间,到目前为止,我喜欢它。不幸的是,我遇到了一个问题。

我试图根据Ember对象中的属性显示和更新控制器中的属性。

jsbin的链接位于

之下

jsbin

对象表示具有两个值的项目以及每个值的计数。 更改属性的计数时,将计算项目的新总计(countA * valueA + countB * valueB)。 我在示例中为4个项目执行此操作。

每当对其中任何一个的计数发生变化时,我也想更改4个项目的总数。 我通过在控制器中定义属性来做到这一点。该属性似乎在初始加载时显示,但在更新计数时不会更新。

我认为将值绑定到Ember对象可以解决问题,但我似乎无法使其正常工作。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您目前正在将totalBoth变量绑定到类定义,而不是类的实例,它只是不起作用。您要做的是观察任何实例中的更改。

查看此更新的JSBin:http://jsbin.com/cuqitufo/6/edit

诀窍是使用@each property for aggregate data

因此您不再需要绑定,只需观察每个实例的calculatedTotal:App.TypeNumbers.@each.calculatedTotal

totalBoth   : function(){
  var total = 0;
  App.TypeNumbers.forEach(function(item){
    console.log( item.get('calculatedTotal') );
    total += item.get('calculatedTotal');
  });
  return total;
}.property( 'App.TypeNumbers.@each.calculatedTotal' ),
相关问题