【发布时间】:2018-05-07 10:04:28
【问题描述】:
请问,您能否建议我在更改值时如何提交我的值?因此,我想在更改此值时提交amount_paid。为了解决这个问题,我创建了一个返回值的函数更改。这个值我需要提交。我试过这段代码:
模板代码:
<div class="input-field col s2" style="float: right;">
<label for="amount_paid">Amount Paid:</label>
<input id="amount_paid" [value]="amountpaid" type="number" class="validate" (change)="updateForm($event)">
</div>
Ts 代码:
this.addsale = this.fb.group({
'invoice_number': new FormControl('', [Validators.required, Validators.nullValidator]),
'client_id': new FormControl('', Validators.required),
'amount_paid': new FormControl('', Validators.required),
'products': this.fb.array([]),
});
updateForm(ev: any) {
this.addsale['controls']['amount_paid'].setValue(ev.target.value);
console.log(ev.target.value)
}
onaddsale() {
let sale = this.addsale.value;
sale.amount_paid = this.amountpaid; //I used this, because I want to submit this value If I don't want to change.
let newSale = new Sale(sale);
console.log(newSale)
console.log(this.addsale.controls.amount_paid.value) // Value input when I chane
}
get amountpaid() {
return this.products
.map(p => p.p_Unit_price * p.p_Quantity)
.reduce((a, b) => a + b, 0);
}
请我有 2 种情况,1,我提交值输入,例如 100。这工作正常。和 2. 当我改变这个值时我提交输入值,所以,从 100 我想改变 90,这个 90 我想提交。我的函数也提交了第一个值sale.amount_paid = this.amountpaid;
更新: demo 我的问题示例
问题是,amount_paid 字段应该被修改,并且修改后的值应该被保留。如何修改我的值?我要字段二绑定,如果不能改,提交get amountpaid() {},否则提交我的值输入。
【问题讨论】:
-
不要将 [value] 属性与 formcontrolName 混用
标签: angular typescript angular5 onchange