我的角度应用需要以不同格式显示货币,例如:$
,£
,2.105,10€
- +不同分隔符后的欧元符号 - 可以通过包含i18n {来实现{1}}变体。
问题是我必须根据JSON的区域设置值显示格式,该值在应用程序初始化后发生,因此无论JSON说什么,货币仍然是默认值,并且不存在似乎是一种显示货币的方式 - angular-locale_de-de.js
+ $12,000
表示您只能使用一种语言环境。
通常的做法是在索引文件中使用i18n docs
,我的应用程序在ajax响应之前不知道区域设置并使用angular-locale- + $localevar +.js
构建应用程序。我该如何解决这个问题?
我可以使用的任何替代库吗?对于角度如何处理多种格式感到非常沮丧。
答案 0 :(得分:1)
如果您只处理一些区域设置并且不介意开销,只需包含所需的每个区域设置文件,并在收到ajax响应后使用插件angular-dynamic-locale重新加载语言,方法如下:
tmhDynamicLocale.set(ajax_reply.locale)
如果你真的关心性能,你可以使用像这样的过滤器动态加载所需的语言环境:
(function () {
'use strict';
angular.module('app.filter').filter('loadScript', [ '$q', function($q) {
var loaded = [];
return function get(link) {
if (loaded.indexOf(link) !== -1)
return {};
loaded.push(link);
var deferred = $q.defer();
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = link;
s.async = true;
s.onreadystatechange = s.onload = function() {
var state = s.readyState;
if (!state)
deferred.resolve();
else
deferred.reject();
};
document.body.appendChild(s);
return deferred.promise;
};
}]);
})();