2014-10-11 53 views
0

在我自定義的基於Web的應用程序中,用戶可以設置他/她自己的時區,區域設置,貨幣和語言(獨立於他們正在使用的計算機)。Angular JS,時區,貨幣和區域

有沒有辦法在應用程序級別爲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,但是能夠設置全局貨幣符號,語言環境和誰是瀏覽應用程序的用戶的時區。

+0

你只是試圖訪問整個應用程序的所有用戶喜好? – 2014-10-11 03:53:31

+0

您可以使用自定義Angular服務跟蹤首選項,然後從過濾器代碼和插件代碼中調用該服務。或者,你可以使用全局範圍來存儲這個,但是這將違背Angular成語和設計模式。 – 2014-10-11 03:55:36

+0

Zeke,你能提供一個示例代碼嗎?我很難跟蹤你。 – sam360 2014-10-12 03:33:33

回答

0

角度支撐i18n標準位置|全球化|國際化。當涉及到數字格式時,Angular依靠$locale服務。例如,關於數字格式化,該服務使用屬性NUMBER_FORMATS那裏定義的貨幣符號本身不會更改編號格式,除非更改'位置'。

這是目前的角度支持位置列表:

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": ".", 
...