从输入knockoutjs的foreach设置可观察/计算值

时间:2016-11-22 13:54:06

标签: javascript html knockout.js

这是我第一次使用KnockoutJS,我有一些问题。 我正在尝试从输入中获取多个值,然后将值添加到observable中,或者生成一个得到加法结果的计算值。但我无法弄清楚如何,因为它是从数据库生成的表,我不知道行数,直到我运行应用程序。任何帮助将不胜感激。感谢。

这是该网站的捕获 Site capture

我需要在“INVERSION TOTAL DEL MES”字段中输入来自“IMPORTE TOTAL”的输入值

这是带有绑定的html的一部分

import

1 个答案:

答案 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改变它的值时,它会使这个函数变得有趣,这将反过来更新总值