У меня есть FormGroup, в которой есть продукты formArray (динамические элементы управления, которые можно добавлять или удалять):
FormGroup {
controls {
products (FormArray) {
0 : {summary.value: 5}...
1 : {summary.value: 8}..
there can be N of these controls...
}
}
}
Ожидаемое резюме = 5 + 8 = 13
Я хочу получитьвсе итоговое значение. Суммируйте их. Как мне это сделать?
Что я сделал, но это работает не так, как ожидалось:
calculateAllSummary(formGroup: FormGroup) {
Object.values(formGroup.controls.products['controls']).forEach((value: FormControl) => {
let summaryControl: FormControl = value['controls'].summary;
this.summarySubscription = summaryControl.valueChanges.subscribe(val => {
if(this.checkIfValuesArentTheSame(val) == true){
let price = val;
if (price != null && typeof price == "string") {
price = price.split(',').join('');
}
let numericValue = 0 + Number(price);
this.summaryValue = this.dp.transform(numericValue, '2.2-5');
};
},
(error) => {
console.log(error)
},
);
});
}
Проблема с моей функцией заключается в том, что всякий раз, когда я пишу сводку в другом продукте, она обновляется доСводный номер другого продукта, но я хочу добавить его к последнему итоговому значению элемента управления. Я знаю, что это происходит из-за этой строки: пусть numericValue = 0 + Number(price)
, но я не могу понять, как это сделать по-другому.