minFractionDigits& angularjs1上的maxFractionDigits

时间:2017-10-03 02:20:17

标签: javascript angularjs

如何在angularjs1上使用minFractionDigitsmaxFractionDigits过滤数字?

Angular2的小数管道过滤器为described here

  

number_expression | number[:digitInfo]

     

将数字格式化为文本。集团选型和分离器等   特定于语言环境的配置基于活动的区域设置。

     

其中expression是一个数字:

     
      
  • digitInfo是一个字符串,格式如下:   {minIntegerDigits} {minFractionDigits} - {maxFractionDigits}
  •   
  • minIntegerDigits是要使用的最小整数位数。   默认为1.
  •   
  • minFractionDigits是之后的最小位数   分数。默认为0。
  •   
  • maxFractionDigits是分数后的最大位数。默认为3。
  •   

我想在angularjs1上这样做。 我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我已经使用@Claies建议创建了一个自定义过滤器。

angular.module('MyApp', []).filter('numberMinMaxFractionSize',function () {
    return function (num, min, max) {
        if (typeof num === "number") {
            var options = {
                minimumFractionDigits: min,
                maximumFractionDigits: max,
            }
            return new Intl.NumberFormat(findLocale(), options).format(num);
        } else {
            return num;
        }
    };
});

function findLocale() {
    try {
        return (navigator.browserLanguage || navigator.language || navigator.userLanguage)
    } catch (e) {
        return "en-US";
    }
}

HTML:

<div>{{value |numberMinMaxFractionSize:0:2}}</div>