【发布时间】:2018-05-08 18:47:17
【问题描述】:
在我的项目中,我想创建一张发票。在这张发票中,我使用函数get subtotal(){} 计算价值,效果很好。现在,如果我更改此小计,例如,我想将折扣从 100 降至 90。
我已经尝试过这段代码,但它不起作用。拜托,你能建议我如何解决这个问题吗? html代码:
<div class="input-field col s2" style="float: right;">
<input formControlName="Subtotal " id="Subtotal " [value]="subtotal " type="number" class="validate" (change)="updateForm($event)">
</div>
ts 代码:
updateForm(event) {
console.log(event)
let amountpaidd = event.target.value
this.addsale['controls']['Subtotal '].setValue(amountpaidd );
}
onaddsale() {
let sale = this.addsale.value;
sale.Subtotal = this.subtotal;
let newSale = new Sale(sale);
console.log(newSale)}
get subtotal() {
return this.products
.map(p => p.p_Unit_price * p.p_Quantity)
.reduce((a, b) => a + b, 0);
}
谢谢!
更新:
this.addsale = this.formbuilder.group({
'Subtotal ': new FormControl('', Validators.required),
'products': this.formbuilder.array([]),
});
【问题讨论】:
-
try (keyup) 是按键按下后产生的原生事件
-
这不是多余的吗?您正在设置已更改的同一控件的表单值。你已经绑定了 formControlName="Subtotal"
-
@toskv 我试过
(keyup),但这不能解决我的问题。在 html 中,我在其中设置了[value]="subtotal",小计是从此函数get subtotal() {}生成的值,在函数onaddsale() {}中,我设置了sale.Subtotal = this.subtotal;这个提交第一个值,而不是更改值。在控制台中,console.log(amountpaidd)我的值发生了变化,但我无法提交。请问有什么办法吗?
标签: angular typescript onchange