angular - 当我输入导致错误值时,角小数管四舍五入
问题描述
我使用了Angular的十进制管道,如下所示:
<input pInputText type="number" [ngModel]="factor | number: '.2'" (ngModelChange)="factor=$event">
当我的页面加载时它正在工作。我在.ts文件中将因子设置为 50,它在 UI 上显示为 50.00。但是,当我删除该值并尝试输入 77 时,当我输入第一个数字时,它使值变为 7.00,而第二个数字最终变为 7.007。所有价值观都在发生这种情况。我不希望它表现得那样。我在这里做错什么了吗?
StackBlitz 位于:https ://stackblitz.com/edit/angular-ke8dd9
解决方案
这种行为是因为管道在用户第一次开始输入时触发。这是因为ngModelChange
设置值的事件factor
。如果您希望格式化数字,我建议使用blur
事件来代替,一旦用户离开该字段,它将格式化该字段。
<input pInputText type="number" [ngModel]="factor | number: '.2'" (blur)="factor=$event">
推荐阅读
- python - 启动 Python 调试器时 VS Code 中的终端错误
- python - 虚拟环境突然损坏(没有名为“contextlib”的模块)
- excel - 如何考虑多行过滤数据?
- java - spring cloud 合约可以处理不同响应的重复请求吗?
- c# - 如何在 .NET Core 中使用 TransactionScope
- swift - iphone 12 / 13 mini 模拟器中的尺寸不正确
- php - 类别的递归数组和子类别 PHP
- node.js - TypeScript:在此示例中预期类型错误。而没有得到他们。我错过了什么吗?还是只是丢了??:)
- reactjs - 传递给孩子的参考是空的
- python - IndentationError:期望在 requests.adapter 中有一个缩进块