詹姆斯,在角度上,变化是观察者订阅 valueChanges 的。
如果声明两个变量 sumFR 和 sumEN,则可以在声明形式之后
this.valuesForm.get('decomposition').valueChanges.subscribe(res=>{
//here we has res, so we can make some like
let sumFR=0
let sumEN=0
res.forEach(x=>{
sumFR+=(+x.frVal); //<--the +x.frVal is to convert first to number
sumEN+=(+x.enVal);
})
this.sumFR=sumFR;
this.sumEN=sumEN
})
在 .html 中,您使用 {{sumEN}} 和 {{sumFR}}
顺便说一下,没有必要创建一个内部有 FormArray 的 FormGroup。您可以简单地声明
decomposition=new FormArray([])
//or using FormBuilder
decomposition=this.fb.array([])
并在.html中使用
<!--see that we used [formGroup]="item", not [formGroupName]="i"-->
<tr *ngFor="let item of decomposition.controls;let i=index" [formGroup]="item" >
<td><input formControlName="valEn"></td>
<td><input formControlName="valFn"></td>
</tr>
//or
<!--see that declare the formGroup=the formArray
<div [formGroup]="decomposition">
<!--and now, we can use [formGroupName]="i"-->
<tr *ngFor="let item of decomposition.controls;let i=index" [formGroupName]="i" >
<td><input formControlName="valEn"></td>
<td><input formControlName="valFn"></td>
</tr>
</div>