使用 ng-currency 四舍五入大数字的问题

Problems rounding large figures using ng-currency

我正在使用 ng-currency 库 - http://aguirrel.github.io/ng-currency/ - 来显示项目中的货币值。 然而,这并不是我需要的,货币价值

我在这里 fork 了这个项目 - 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

从你的 plunker 我看到你在混合版本:

来自https://github.com/aguirrel/ng-currency#versions

Versions

If you use angular 1.2.x please, use 0.7.x version. If you use angular 1.3.x or above just use 0.8.x version instead.

请在您的 plunkr 中使用 https://rawgit.com/aguirrel/ng-currency/v0.8.x/src/ng-currency.js 而不是上传的 ng-currency.js。

  <script src="https://rawgit.com/aguirrel/ng-currency/v0.8.x/src/ng-currency.js"></script>

您可以使用(请添加 http://,因为我的信誉不超过 10)plnkr.co/edit/lH9mKrnRZZZAjU27bFqK

快速自定义过滤器并删除 ngCurrency 库。

</p> <pre><code><input type="number" maxlength="12" ng-currency ng-model="myValue" /> {{myValue | myCurrency:myValue | currency:'$':0}}

</p> <pre><code>currencyModule.filter('myCurrency', function () { return function (myValue) { if (myValue > 999999){ myValue = 999999; } else if(myValue < 0){ myValue = 0; } return myValue; }; });

http://plnkr.co/edit/1nw9bW3BTkU5YRa2lJFg?p=preview