我对最新版本的globalize.js
. 要使用它,我必须加载cldr modules
和语言定义。
现在我从 globalize 文档中得到了这个例子:
// loading needed modules
$.get('/Scripts/cldr/supplemental/likelySubtags.json', Globalize.load);
$.get('/Scripts/cldr/main/en/numbers.json', Globalize.load);
$.get('/Scripts/cldr/main/de/numbers.json', Globalize.load);
// set current language
lobalize.locale('de-de');
我现在的问题是本地 json 文件是异步加载的。这意味着在我的脚本尝试设置当前语言的那一刻,模块尚未加载。
现在我试着变得聪明并做了这个:
$.get('/Scripts/cldr/supplemental/likelySubtags.json', function (data) {
Globalize.load(data);
Globalize.locale('de-de');
});
$.get('/Scripts/cldr/main/en/numbers.json', Globalize.load);
$.get('/Scripts/cldr/main/de/numbers.json', Globalize.load);
在我真正使用全球化格式方法之前,这将起作用。在我的 HTML 中,我在敲除绑定中使用 globalize,如下所示:
<span data-bind="text: Globalize.formatNumber(SomeNumber, { maximumFractionDigits: 0 })"></span>
现在“formatNumber”方法抛出错误,因为在绑定发生时并非所有模块都已加载。
我现在的问题是,如何同步我的 JavaScript?