在Angular 5中,未在(ngModelChange)中获取更新的文本框值。我有一个用于输入运输成本的文本框,每当更改模型时,我需要添加总成本并显示出来。在此,始终取以前的值而不是当前的输入值。
例如,以前它有5个,现在我要添加到51个,ngModelChange期间ngModel仅取5个而不是51个。
<TextField row="1" col="1" (ngModelChange)="sumOfRestocking();" [(ngModel)]="shippingFee" ></TextField>
sumOfRestocking () {
console.log('shipping fee-->' + this.shippingFee);
// Takes only previous record, so I am not able to update the total correctly.
}
任何人都可以帮助我,为什么它只采用以前的值而不是当前的值。
答案 0 :(得分:1)
将更改传递给函数调用
<TextField row="1" col="1" (ngModelChange)="sumOfRestocking($event);" [(ngModel)]="shippingFee" ></TextField>
sumOfRestocking (changes) {
console.log('shipping fee-->' + changes);
}
ngModelChange在模型更改时触发,您也可以将change用于最新模型,但会在模糊而不是键盘输入时触发。您可以使用(keyup),因为那样会在模型更新后触发。
<TextField row="1" col="1" (change)="sumOfRestocking();" [(ngModel)]="shippingFee" ></TextField>
sumOfRestocking () {
console.log('shipping fee-->' + this.shippingFee);
}