這是爲什麼代碼工作:JavaScript的內聯回調函數,以單獨的函數
function onCordovaReady() {
navigator.globalization.getLocaleName(function (locale) {
jQuery.i18n.properties({
name:'message',
path:'lang/',
mode:'map',
language:locale.value,
callback: function(){
alert(locale.value);
alert(jQuery.i18n.prop('msg_hello'));
alert(jQuery.i18n.prop('msg_complex', 'John'));
}
});
});
}
而這一次沒有:
function onCordovaReady() {
navigator.globalization.getLocaleName(function (locale) {
jQuery.i18n.properties({
name:'message',
path:'lang/',
mode:'map',
language:locale.value,
callback: onLanguageReady(locale)
});
});
}
function onLanguageReady(locale) {
alert(locale.value);
alert(jQuery.i18n.prop('msg_hello'));
alert(jQuery.i18n.prop('msg_complex', 'John'));
}
我想在不同的函數的回調,所以我的代碼看起來更乾淨,但無法讓它工作。第一個警報將工作(它將顯示nl_NL),但第二個和第三個警報將輸出[msg_hello]和[msg_complex]。
非常感謝!
這完全不起作用,它的工作原理,如果我刪除行: 警報(locale.value); 當我離開那裏的行JavaScript代碼只是凍結。 –
定義的locale變量在哪裏? – romainberger
我想它是在navigator.globalization.getLocaleName中定義的,它來自cordova/phonegap插件。 [鏈接](http://docs.phonegap.com/en/2.7.0/cordova_globalization_globalization.md.html#globalization.getLocaleName) –