繁体   English   中英

Ember.js从控制器绑定到Ember.Object中的计算属性无效

[英]Ember.js binding to computed property in Ember.Object from controller doesn't work

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

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

到jsbin的链接在下面

jsbin

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

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

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

任何帮助将不胜感激。

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

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

诀窍是使用@each属性获取聚合数据

因此,您不再需要绑定,只需观察每个实例的App.TypeNumbers.@each.calculatedTotalApp.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' ),

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM