Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在angular中获得keyup的元素和?_Angular_Typescript_Sum - Fatal编程技术网

如何在angular中获得keyup的元素和?

如何在angular中获得keyup的元素和?,angular,typescript,sum,Angular,Typescript,Sum,我在formgroup中有N个输入,我需要得到总和: <input (keyup)="sum($event)" type="text" name="estoque_variacao{{i}}" class="form-control" id="estoque_variacao{{i}}" formControlName="estoque_variacao"> 当我按下22键时,我只得到: 二, 我已经试过了: sum += parseFloat(valor.key); 但我得到了

我在formgroup中有N个输入,我需要得到总和:

<input (keyup)="sum($event)" type="text" name="estoque_variacao{{i}}" class="form-control" id="estoque_variacao{{i}}" formControlName="estoque_variacao">
当我按下22键时,我只得到:

二,

我已经试过了:

sum += parseFloat(valor.key);
但我得到了同样的回答

我该怎么做

我需要这样的东西,但在angular/typescript中:

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

keyup事件只保留在keyup中输入的内容,它不知道以前的keyup事件。但是,您可以通过调用formControl.value方法并汇总表单控件来获取每个表单控件的输入。

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

按照步骤操作

1.在ts文件中 创建一个可以保存所有控件模型的对象

public controls = {};
2.在html中
就这些

如何获得即时formcontrol.value更改而不使用keyup?您可以随时订阅对form control值的更改。我如何做到这一点?@RenaotPLS这是一篇关于此主题的好文章:在第一次输入中我输入:13,在第二次输入中我输入13,如果我在全局和中声明和,我的响应是01313:number=0;sum{Object.keyshis.controls.mapkey=>{this.sum+=this.controls[key];};console.logthis.sum;}我收到:01131313更新了答案
<input [(ngModel)]="controls[i]" (keyup)="sum($event)" type="text" name="estoque_variacao{{i}}" class="form-control" id="estoque_variacao{{i}}" formControlName="estoque_variacao">
 let sum = 0;
 Object.keys(this.controls).map(key => {
   sum +=  +this.controls[key];
 });
 console.log(sum);