【发布时间】:2018-09-20 17:43:52
【问题描述】:
我有一个货币输入字段,它必须在 2 路绑定上下文中显示数据。也就是说,模型的数据必须能够更新值,用户的数据也必须能够更新值。
我的第一次尝试是这样的:
<input type="text" [(ngModel)]="price | currency">
这在单向上下文中运行良好。但是每当用户试图编辑输入时,我们就会得到一个错误,EX:
"InvalidPipeArgument: '$123.00 is not a number' for pipe 'CurrencyPipe'"
这个错误是有道理的,因为管道试图再次对输入值应用过滤器,但这次的值是我们的货币字符串,而不是数字。
我想过尝试做这样的事情:
<input type="text" [ngModel]="price" (ngModelChange)="price = $event.target.value">
但这里的值将是与以前相同的货币字符串。我想我需要做类似undo_currency_filter($event.target.value) 之类的事情,但如果不编写自定义且可能容易出错的方法,我看不到任何方法。
在 Angular 中完成这项任务的最佳方法是什么,最好不必编写如上所述的自定义方法?
【问题讨论】:
标签: angular typescript