2017-10-03 5 views
1

angularjs1のminFractionDigitsmaxFractionDigitsで数値をフィルタリングするにはどうすればよいですか?angularjs1のminDraction&maxFractionDigits

Angular2には、小数点パイプフィルターがdescribed hereとなっています。

number_expression | number[:digitInfo]

テキストとして番号をフォーマットします。グループサイジングとセパレータ、およびその他の ロケール固有の構成は、アクティブなロケールに基づいています。

expressionの数である:

  • digitInfoは、以下の形式は文字列です。 {minIntegerDigitsを} {minFractionDigits} - {maxFractionDigits}
  • minIntegerDigitsが整数の最小桁数でありますつかいます。 デフォルトは1です。
  • minFractionDigitsは、 分の後の最小桁数です。既定値は0です。
  • maxFractionDigitsは、端数後の最大桁数です。既定値は3です。

これはanglejs1で行います。 どうすればいいですか?

+0

AngularJsがに来る最も近い 'number'フィルタの' fractionSize'パラメータです。独自のカスタムフィルタを作成しない限り、https://docs.angularjs.org/api/ng/filter/number – Claies

+0

私は 'fractionSize'パラメータを知っています。私は 'minFractionSize'と' maxFractionSize'を '0-2'に設定したいと思います。 –

+0

AngularJsに組み込まれているオプションではありません。ロジックを処理するために独自のカスタムフィルタを作成する必要があります。 – Claies

答えて

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> 
関連する問題