答案 0 :(得分:1)
如果您正在使用输入&&模板中的ngModel优于(keyup)
使用(ngModelChange)
事件
template.html
<input type="text" maxlength="5"
[(ngModel)]="groupInfo.discount" (ngModelChange)="validateFloat($event)">
我认为只有trigger issue
event
答案 1 :(得分:0)
看起来你的更新没有被ngModel正确选取。
尝试异步执行更新:
validateFloat(event){
setTimeout(() => {
event.target.value = event.target.value.replace(/[^\d.]/g, "");
console.log(this.groupInfo.discount);
}, 50);
}
ngModel在尝试使用它时会有一些不直观的行为,因为它正在尝试做什么 - (将组件中的更改反映到DOM并更改组件中的DOM)。由于Angular不允许您在更改检测周期中检查后更改值,因此ngModel必须异步工作,这可能会导致意外行为。