首页 > 解决方案 > 角度 5,使用 (ngModelChange) 更改模型时未采用新模型值

问题描述

在 Angular 5 中,更新的文本框值尚未被纳入 (ngModelChange)。我有一个用于输入运费的文本框,每当更改模型时,我需要添加总成本并需要显示。在这里,总是取先前的值而不是当前输入的值。

例如,以前它有 5,现在,我添加到 51,ngModel 在 ngModelChange 期间只需要 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.
}

任何人都可以帮助我,为什么它只取以前的值而不是取当前值。

标签: angular5nativescriptangular2-nativescript

解决方案


将更改传递给函数调用

<TextField row="1" col="1" (ngModelChange)="sumOfRestocking($event);" [(ngModel)]="shippingFee" ></TextField>


sumOfRestocking (changes) {
    console.log('shipping fee-->' + changes);
}

ngModelChange 会随着模型的变化而触发,您也可以将 change 用于最新模型,但会在模糊而不是 keyup 时触发。您可以使用 (keyup),因为它会在模型​​更新后触发。

<TextField row="1" col="1" (change)="sumOfRestocking();" [(ngModel)]="shippingFee" ></TextField>


sumOfRestocking () {
    console.log('shipping fee-->' + this.shippingFee);
}

推荐阅读