angular - 如何以角度获得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);
但我得到了同样的回应
我怎样才能做到这一点?
我需要这样的东西,但在角度/打字稿中:
解决方案
您当前的实现只能处理一个控件,但是您需要汇总所有动态生成的控件。
按照步骤
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. 决赛
最后需要得到controls
object的值并总结。
let sum = 0;
Object.keys(this.controls).map(key => {
sum += +this.controls[key];
});
console.log(sum);
就这样 !
推荐阅读
- terraform - 如何使用 terraform 部署到私有硬件
- python - 如何在python中将文本文件转换为CSV
- c - 6.3.1.1p2 的含义,要点 2
- reactjs - React:如何处理单页应用程序中的组件/状态?
- reactjs - 使用 Dropdown 时无法更改角色并删除 aria-haspopup 属性
- html - 为什么最小高度样式对 div 没有影响
- ajax - 使用 ajax get 使用 rest api
- sql-server - SQL SERVER - 找出哪个字段不同
- android - Gradle 同步失败..缺少谷歌
- c# - C#无法将类型转换为字符串