【问题标题】:Problems rounding large figures using ng-currency使用 ng-currency 舍入大数字的问题
【发布时间】: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


    【解决方案1】:

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

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

    版本

    如果您使用 angular 1.2.x,请使用 0.7.x 版本。如果你使用角度 1.3.x 或以上版本就用 0.8.x 版本代替。

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

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

    您可以使用 plnkr.co/edit/lH9mKrnRZZZAjU27bFqK(请添加 http://,因为我的声誉不超过 10 个)查看它的实际效果

    【讨论】:

    • 感谢 Luis,我还必须将输入字段中允许的字符数从 12 个增加到 16 个,但现在效果很好!
    【解决方案2】:

    将一个快速自定义过滤器组合在一起并删除了 ngCurrency 库。

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

    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

    【讨论】:

    • 感谢 Adam,但输入字段中的值也必须呈现为货币值(即 $123.00)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    相关资源
    最近更新 更多