Javascript 从控制器绑定到Ember.Object中计算属性的Ember.js不';行不通

Javascript 从控制器绑定到Ember.Object中计算属性的Ember.js不';行不通,javascript,binding,ember.js,properties,controller,Javascript,Binding,Ember.js,Properties,Controller,有一段时间,我正在与余烬js的工作,到目前为止,我喜欢它。不幸的是,我遇到了一个问题 我正在尝试根据余烬对象中的属性显示和更新控制器中的属性 下面是指向jsbin的链接 对象表示一个具有两个值的项以及每个值的计数。 更改属性的计数时,将计算项目的新总数(countA*valueA+countB*valueB)。 我对示例中的4个项目执行此操作 每当其中任何一项的计数发生变化时,我也想改变4项的总数。 我通过在控制器中定义一个属性来实现这一点。该属性似乎在初始加载时显示,但在更新计数时不会更新

有一段时间,我正在与余烬js的工作,到目前为止,我喜欢它。不幸的是,我遇到了一个问题

我正在尝试根据余烬对象中的属性显示和更新控制器中的属性

下面是指向jsbin的链接

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

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

我想把这个值绑定到Ember对象就可以了,但我似乎无法让它工作


任何帮助都将不胜感激

您当前正在将
totalBoth
变量绑定到类定义,而不是类的实例,这是行不通的。您要做的是观察任何实例中的更改

查看此更新的JSBin:

诀窍是使用

因此,您不再需要绑定,只需观察每个实例的计算总数:
App.typenumber.@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' ),

你让它看起来很简单:)。非常感谢,这真的帮了我的忙。哈哈。是 啊我从11月份就开始玩Ember了,最近我试图回答有关StackOverflow的问题,以巩固我学到的东西。很高兴我能帮忙!