angular5 - 角度 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.
}
任何人都可以帮助我,为什么它只取以前的值而不是取当前值。
解决方案
将更改传递给函数调用
<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);
}
推荐阅读
- r - 在 R 中创建新列,仅在满足条件时将前一个值加 1
- password-protection - 存储密码的位置 - 第 3 方 API
- ios - 如何配置 SwiftUI openweathermap 应用程序以搜索包含多个单词的城市名称(例如纽约市)
- java - 无法在“/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/apt”中找到可执行文件 (-1)
- python-3.x - Python模块Azure Identity 1.7.1中不需要的终端http请求输出
- c# - 如何使用 System.Text.Json 序列化文字 JSON 值?
- c# - 如何让我的程序说我离答案很近或很远,然后再次输入?C#
- flutter - 我希望在 corousel 滑块的每个图像下添加一些文本,颤动
- autodesk-forge - 已收到 Webhook,但无法下载派生属性 JSON
- php - 如何在函数中定义变量?