【发布时间】:2015-08-03 07:51:31
【问题描述】:
我正在使用 ng-currency 库 - http://aguirrel.github.io/ng-currency/ - 在项目中显示货币值。 然而,这并不是我所需要的,货币价值
- 不能为负数
- 不能大于 999,999,999
- 必须四舍五入到最接近的整数,即不包含小数
- 呈现为货币值,即 1234 显示为 $1234.00
我在这里分叉了这个项目 - https://github.com/tetsujin1979/ng-currency/blob/master/src/ng-currency.js 我从正则表达式中删除了减号以阻止用户输入负值,并编辑了 on blur 方法以在显示之前对数字进行四舍五入,如下所示,但是当四舍五入的值大于 $999,999.00 时,模型没有得到赋值
element.on("blur", function () {
var roundedValue = Math.round(ngModel.$modelValue);
if(roundedValue > 999999999) {
roundedValue = 999999999;
}
ngModel.$setViewValue(roundedValue);
element.val($filter('currency')(roundedValue, currencySymbol()));
ngModel.$render();
});
我在这里创建了一个 plunkr 来演示这一点:http://plnkr.co/Y7WkJtjlDZF3pXo84MRs
【问题讨论】:
标签: angularjs rounding currency