gpt4 book ai didi

javascript - 多种 AngularJS 货币格式,使用 i18n(欧元、德国)

转载 作者:行者123 更新时间:2023-12-03 07:08:56 27 4
gpt4 key购买 nike

我的 Angular 应用程序需要以不同格式显示货币,例如:$2.105,10€ - + 之后的欧元符号不同的分隔符 - 这可以通过包含 i18n angular-locale_de-de.js 变体来实现。

问题是我必须根据 JSON 的区域设置值显示格式,这会在应用程序初始化后发生,因此无论 JSON 说什么,货币都保持默认值,并且似乎没有办法将货币显示为 - $12,000 + i18n 文档 表示您只能使用一种区域设置。

常见的做法是在索引文件中使用 angular-locale- + $localevar +.js ,同样,我的应用程序在 ajax 响应之前并不知道区域设置并使用 grunt 来构建应用程序。我该如何解决这个问题?

我可以使用任何替代库吗?对 Angular 处理多种格式的难度感到非常沮丧。

这是一个 fiddle http://jsfiddle.net/awsd2s5r/

最佳答案

如果您只处理几个区域设置并且不介意开销,只需包含所需的每个区域设置文件并使用插件 angular-dynamic-locale收到 ajax 响应后重新加载语言,方法如下:

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;
};
}]);

})();

关于javascript - 多种 AngularJS 货币格式,使用 i18n(欧元、德国),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36688907/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com