gpt4 book ai didi

javascript - Ember.js 从 Controller 绑定(bind)到 Ember.Object 中的计算属性不起作用

转载 作者:行者123 更新时间:2023-11-28 08:19:21 26 4
gpt4 key购买 nike

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

我正在尝试根据 Ember 对象中的属性显示和更新 Controller 中的属性。

下面是 jsbin 的链接

jsbin

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

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

我认为将值绑定(bind)到 Ember 对象可以解决问题,但我似乎无法让它工作。

任何帮助将不胜感激。

最佳答案

您当前将 totalBoth 变量绑定(bind)到类定义,而不是类的实例,这是行不通的。您想要做的是观察任何实例的变化。

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

诀窍是使用 @each property for aggregate data .

因此您不再需要绑定(bind),只需观察每个实例的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' ),

关于javascript - Ember.js 从 Controller 绑定(bind)到 Ember.Object 中的计算属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23175601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com