Multplication两个输入Angular

时间:2017-12-22 20:41:31

标签: javascript angular angular4-forms

我想从2个输入中获取值( NUM_PRECIO_UNITARIO NUM_PORCENTAJE_IVA ),并在其他输入中显示多重复制的结果( NUM_VALOR_IVA )实际上这是我的HTML

file.html

<div class="form-group col-sm-5">
    <mat-form-field>                    
        <input matInput type="number" formControlName="NUM_VALOR_IVA" placeholder="Valor IVA" value="{{formDetalleOC.get('NUM_PRECIO_UNITARIO').value * formDetalleOC.get('NUM_PORCENTAJE_IVA').value}}" required>                  
    </mat-form-field>
</div>  

file.ts

ngOnInit() {
    this.createControlItemOC
} 

createControlItemOC() {  
    this.formDetalleOC = this.fb.group({         
        NUM_PRECIO_UNITARIO: 0,
        NUM_PORCENTAJE_IVA: 0,   
        NUM_VALOR_IVA: 0,
    })  
}

这是前面的结果

enter image description here

但在我的表格中,价值不会改变

enter image description here

1 个答案:

答案 0 :(得分:3)

在函数中创建以将组件类中的这些值相乘

calcResult() {
    const o = this.formDetalleOC.get('NUM_PRECIO_UNITARIO').value * this.formDetalleOC.get('NUM_PORCENTAJE_IVA').value; 
    this.formDetalleOC.patchValue({ NUM_VALOR_IVA: o });
    return o;
}

在HTML模板中,调用该函数:

<div class="form-group col-sm-5">
    <mat-form-field>                    
        <input matInput type="number" formControlName="NUM_VALOR_IVA" placeholder="Valor IVA" [value]="calcResult()" required>                  
    </mat-form-field>
</div>

PS:如果您使用的是ngModel,则不要将FormBuilder用于表单输入(您可以在同一页面上将其用于其他内容)。