AngularJS:将小数点分隔符更改为逗号

时间:2019-03-18 20:50:58

标签: javascript html angularjs internationalization decimalformat

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

我想用十进制数字显示时间(由于用户位于德国-欧洲,所以用逗号分隔)。

例如,预计5分钟将显示为:

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

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

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

以防万一,我需要知道。

3 个答案:

答案 0 :(得分:1)

查看$locale服务的文档。

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

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

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

答案 1 :(得分:0)

要更改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 :(得分:0)

因此,我找到了没有语言环境服务的另一种方法。 我添加了此管道

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';
    }
});

输入来自持续时间。

我希望这可以帮助某个人。