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

AngularJS: Change decimal separator to comma

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

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

例如 5 分钟应显示为:

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

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

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

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

查看 $locale 服务的文档。

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

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

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

要更改 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>    

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

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

输入来自持续时间。

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