Angular 当formGroup.length>;1.
在我的表单组之外,我有以下ngModel输入:Angular 当formGroup.length>;1.,angular,typescript,Angular,Typescript,在我的表单组之外,我有以下ngModel输入: <input [class.disabled]="controls[0] > 0" [(ngModel)]="produto.estoque" type="text"> 当我遵循以下步骤时,一切都很顺利: 添加新的表单组 在输入estoque_变量中填充值 添加其他表单组 填充第二个输入estoque_variacao的值 总和在输入produto.estoque中正确显示 问题是当我遵循以下步骤时: 添加新的表单组 不要填充第
<input [class.disabled]="controls[0] > 0" [(ngModel)]="produto.estoque" type="text">
当我遵循以下步骤时,一切都很顺利:
createFormGroup(): FormGroup {
return this.fb.group({
estoque_variacao: 0
}
我怎样才能解决这个问题
@编辑:
为我工作:
soma(){
let sum = 0;
const value = this.variacaoForm.value.variacoes;
for(const key in value){
sum += (+value[key].estoque_variacao);
}
this.produto.estoque = sum
}
当我删除formgroup时,我需要降低输入值:
this.produto.estoque = this.produto.estoque - this.variacaoForm.value.variacoes[index].estoque_variacao
您不应该同时使用ngModel和FormControlName。事实上,您不应该同时使用模板驱动表单和反应式表单。这是两种不同的方法,您需要为任何给定的情况选择一种 下面是一个例子:
希望这有帮助我知道,但我不知道没有NGModel的formGroup求和的其他方法。如果您有一个formGroup,您可以使用
variacaForm.value从fromGroup获取值
并继续进行。我已经用一个示例更新了主要答案。请看一下好的,我删除了ngModel并更改了soma()函数,请参见我的编辑,但是当我添加多个formGroup并尝试填充estoque变量时,我的produto estoque仍然显示NaN。ngModel+FormControlName可能没有问题。我将尝试使用您的函数
soma(){
let sum = 0;
const value = this.variacaoForm.value.variacoes;
for(const key in value){
sum += (+value[key].estoque_variacao);
}
this.produto.estoque = sum
}
this.produto.estoque = this.produto.estoque - this.variacaoForm.value.variacoes[index].estoque_variacao