Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 输入时角度十进制管道向上舍入,导致错误的值_Angular - Fatal编程技术网

Angular 输入时角度十进制管道向上舍入,导致错误的值

Angular 输入时角度十进制管道向上舍入,导致错误的值,angular,Angular,我使用了十进制角度管道,如下所示: <input pInputText type="number" [ngModel]="factor | number: '.2'" (ngModelChange)="factor=$event"> 当我的页面加载时,它正在工作。我在.ts文件中将factor设置为50,它在UI上显示为50.00。然而,当我删除该值并尝试键入77时,当我输入第一个数字时,该值为7.00,第二个数字最终为7.007。所有的价值观都是如此。我不希望它那样做。我做错

我使用了十进制角度管道,如下所示:

<input pInputText type="number" [ngModel]="factor | number: '.2'" (ngModelChange)="factor=$event">

当我的页面加载时,它正在工作。我在.ts文件中将factor设置为50,它在UI上显示为50.00。然而,当我删除该值并尝试键入77时,当我输入第一个数字时,该值为7.00,第二个数字最终为7.007。所有的价值观都是如此。我不希望它那样做。我做错什么了吗


StackBlitz for it位于:

此行为是因为当用户第一次开始键入时,管道会触发。这是因为
ngModelChange
事件设置了
因子
值。如果您希望格式化数字,我建议使用
blur
事件,该事件将在用户离开字段后格式化字段

<input pInputText type="number" [ngModel]="factor | number: '.2'" (blur)="factor=$event">


此行为是因为当用户第一次开始键入时,管道会触发。这是因为
ngModelChange
事件设置了
因子
值。如果您希望格式化数字,我建议使用
blur
事件,该事件将在用户离开字段后格式化字段

<input pInputText type="number" [ngModel]="factor | number: '.2'" (blur)="factor=$event">


这些管道不能很好地处理输入,因为输入时值会发生变化,我相信它们是用于静态数字格式的。可以考虑更新模糊值:

<input
  type="number"
  [ngModel]="factor | number: '.2'"
  [ngModelOptions]="{updateOn: 'blur'}"
  (ngModelChange)="factor=$event">

这些管道不能很好地处理输入,因为输入时值会发生变化,我相信它们是用于静态数字格式的。可以考虑更新模糊值:

<input
  type="number"
  [ngModel]="factor | number: '.2'"
  [ngModelOptions]="{updateOn: 'blur'}"
  (ngModelChange)="factor=$event">


如果您使用Angular 5+查看我的答案:)Angular有内置的表单钩子用于何时更新控制值。@pokrishka-非常好。如果您使用Angular 5+查看我的答案:)Angular有内置表单钩子用于何时更新控制值。@pokrishka-非常好。