首页 > 解决方案 > 如何以角度获得keyup的总和元素?

问题描述

我在表单组中有“N”个输入,我需要得到总和:

<input (keyup)="sum($event)" type="text" name="estoque_variacao{{i}}" class="form-control" id="estoque_variacao{{i}}" formControlName="estoque_variacao">

我的打字稿:

sum(value){
    let sum;
    if(sum == null){
      sum = 0;
    }
    sum =  +Number(value.key);
}

当我按“22”时,我得到:

2.

我已经尝试过:

sum += parseFloat(valor.key);

但我得到了同样的回应

我怎样才能做到这一点?

我需要这样的东西,但在角度/打字稿中:

http://jsfiddle.net/35At5/

标签: angulartypescriptsum

解决方案


您当前的实现只能处理一个控件,但是您需要汇总所有动态生成的控件。

按照步骤

1.在ts文件中

创建一个可以容纳所有控制模型的对象。

public controls = {};

2.在html中

<input [(ngModel)]="controls[i]" (keyup)="sum($event)" type="text" name="estoque_variacao{{i}}" class="form-control" id="estoque_variacao{{i}}" formControlName="estoque_variacao">

ngModel 将在controls对象内部创建属性

3. 决赛

最后需要得到controlsobject的值并总结。

 let sum = 0;
 Object.keys(this.controls).map(key => {
   sum +=  +this.controls[key];
 });
 console.log(sum);

就这样 !


推荐阅读