这是我第一次使用KnockoutJS,我有一些问题。 我正在尝试从输入中获取多个值,然后将值添加到observable中,或者生成一个得到加法结果的计算值。但我无法弄清楚如何,因为它是从数据库生成的表,我不知道行数,直到我运行应用程序。任何帮助将不胜感激。感谢。
我需要在“INVERSION TOTAL DEL MES”字段中输入来自“IMPORTE TOTAL”的输入值
这是带有绑定的html的一部分
import
答案 0 :(得分:0)
做类似的事情:
InversionDelMes = ko.computed(function(){
return RendicionesPager.pagedRows.reduce(function(p,n){ return p.ImporteTotal + n.ImporteTotal ;});
});
你需要调整所有上下文,如果ImporteTotal是一个可观察的等等,则添加()但是你得到了这个想法:)
编辑更好地解释,创建一个ko计算,当RendicionesPager.pagedRows被更改时将更新,并且每次它将聚合所有包含元素的ImporteTotal字段并返回它。< / p>
另外请记住,当您从可观察数组RendicionesPager.pagedRows中添加/删除项目时,这将起作用(如果它是obsArray)。如果要在每次用户更改输入值时重新计算值,则必须订阅每个可观察字段并运行类似的逻辑,例如
ImporteTotal.subscribe(function(){
myTotal = RendicionesPager.pagedRows.reduce(function(p,n){
return p.ImporteTotal + n.ImporteTotal ;
});
});
这样当任何一个observable改变它的值时,它会使这个函数变得有趣,这将反过来更新总值