我有一個工作的ajax函數傳遞數組中的值。事情是,因爲我將有大量的翻譯,我想創建一個包含所有翻譯的json文件,然後將其轉到我的主要ajax函數。事情是,我的價值觀不會在文件上加載,只是當我改變語言。在文檔準備好時將Json數組值初始化爲現有的ajax函數
我的函數i18n它不會加載o文檔準備就緒,它給我一個錯誤「Uncaught TypeError:無法讀取未定義的屬性'en'。我試圖執行我的i18n一個我的updateForecast函數,它加載文檔準備好的值,但然後我在循環中。
我做錯了什麼?對於快速參考,您可以在這裏看到工作實例 - https://dl.dropboxusercontent.com/u/23044665/test/index.html
$(function(){
//
// Translations
//
var trans;
function i18n (key, value) {
$.getJSON("translations.json", function(json){
trans = json[0];
});
if (trans != 'undefined' && trans[language] != 'undefined' && trans[language][key] != 'undefined') {
return trans[language][key]
}
return value;
}
function updateForecast() {
var forecast = "http://api.openweathermap.org/data/2.5/forecast/daily?id=" + city_id + "&units=" + units + "&cnt="+ (parseInt(forecast_days)+1) +"&lang=en";
// Define Ajax Call
$.ajax({
url: forecast,
async: true,
dataType: 'json',
success: function(data) {
// Execute Translation function
i18n();
var firstItem = data.list[0];
var secondItem = data.list[0].weather[0];
alert(trans[language].weather[secondItem.id]);
},
error: function(data) {
alert("ERROR:");
}
});
}
updateForecast(); // for init update!
});
你真的需要做的更好,解釋更精確和一些代碼你的問題是 – charlietfl
你是對的,對不起!我更新了我的帖子,更詳細地解釋了我的問題! :) –