【问题标题】:AngularJS: Change decimal separator to commaAngularJS:将小数分隔符更改为逗号
【发布时间】:2019-03-18 20:50:57
【问题描述】:

我希望我能找到解决方案。 我正在使用angular1.4

我想以十进制数字显示时间(用逗号分隔,因为用户在德国-欧洲)。

例如 5min 预计会显示为:

5min=(5/60)=0,08(小数点后两位)

然后我遇到了这个解决方案:AngularJS number filter。但是结果以十进制显示,我可以在下面的管道过滤器中添加什么,以将十进制更改/替换为逗号?

<span>{{ dr.duration/(60*60*1000) | number:2}}</span>

如果您需要清楚,请告诉我。

【问题讨论】:

    标签: javascript html angularjs internationalization decimalformat


    【解决方案1】:

    要更改 AngularJS 数字过滤器使用的分隔符,请包含适当的语言环境规则集,例如 angular-locale_de-de.js

    有两种方法可以为 AngularJS 提供语言环境规则:

    有关详细信息,请参阅

    演示

    <script src="//unpkg.com/angular/angular.js"></script>
    <script src="//unpkg.com/angular-i18n/angular-locale_de-de.js"></script>
    <body ng-app>
        <span><b>5min=(5/60)=</b>
          {{ 5/60 | number:2 }} hr (2 decimal places)
        </span>
    </body>    

    【讨论】:

    【解决方案2】:

    查看$locale 服务的文档。

    Here 是源代码中的语言环境列表。

    他们用于支持的语言环境的example 实际上是用于德国:~)。

    顺便说一句,在 AngularJS 文档中,每个页面的顶部都有一个按钮,在每个页面的顶部显示 [查看源代码]。

    【讨论】:

    • 谢谢@Saylestyler。但是目前该项目不包含此服务,并且我的 PO 可能需要一些时间(一个有很多限制/官僚机构的项目),是否有其他方法可以仅使用此组件?
    • 所以我找到了另一种没有语言环境服务的方法。我在客户不想使用语言环境服务的奇怪情况下添加了这个答案(比如我的情况)。 stackoverflow.com/a/55261028/6561825
    • 很棒的解决方案
    【解决方案3】:

    所以我找到了另一种没有语言环境服务的方法。 我添加了这个管道

    app.filter('timeToDecimals', ($filter) => {
        return function (input) {
          let time = Number(input);
            if (!Number.isNaN(time)) {
                let number = time/(60*60*1000);
                return $filter('number')(number, 2).replace(".",",");
            } 
            else return '00,00';
        }
    });
    

    输入来自持续时间。

    我希望这对那里的人有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多