Angular JS,时区,货币和区域设置

时间:2014-10-11 02:24:48

标签: javascript angularjs

在我的自定义基于Web的应用程序中,用户可以设置他/她自己的时区,区域设置,货币和语言(独立于他们使用的计算机)。

有没有办法在App级别为Angular设置这些参数,这样我就不必为页面中的每个货币或日期时间值设置它?

<!-- something like this: -->
<html ng-app="myApp" ng-currency-symbol="GBP" ng-locale="fr-FR" ng-timezone="-5">
  <body ng-controller="MyAppController">
      <div class="list-group">
         <div class="list-group-entry">{{MyApp.SubTotal | currency}}</div>
         <div class="list-group-entry">{{MyApp.Total | currency}}</div> 
         <!-- both would print the value like following:
            (e.g: 5,000.32) as £5 000,32 -->
      </div>
  </body>
</html>

目标是使代码保持开发人员编写AngularJS的自然方式,但是能够全局设置正在浏览应用程序的用户的货币符号,区域设置和时区。

1 个答案:

答案 0 :(得分:0)

Angular支持i18n位置标准|全球化|国际化。在数字格式方面,Angular依赖于$locale servic。例如,关于数字格式,此服务使用属性NUMBER_FORMATS,定义货币符号本身不会更改编号格式,除非您更改“位置”。

以下是angular目前支持的位置列表:

http://cdnjs.com/libraries/angular-i18n/

以下是有关如何支持german locale的示例:

<html ng-app>
 <head>

   <script src="angular.js"></script>
   <script src="i18n/angular-locale_de-de.js"></script>

 </head>
</html>

如果你想深入了解它,你可以在上面提供的任何CDN中搜索NUMBER_FORMATS,你会发现用什么角度来格式化你的数字,这是一个例子:

"NUMBER_FORMATS": {
    "CURRENCY_SYM": "\u20ac",
    "DECIMAL_SEP": ",",
    "GROUP_SEP": ".",
...