Я работаю над получением информации jsonp с страницы, и я хочу использовать различные функции для этой информации. Информация возвращается хорошо, но я не могу найти способ сделать ее доступной вне функции. Я знаю, что это связано с закрытием и функциональностью, но я не могу понять, как заставить ее работать, какие-либо идеи?Переменный контент вне метода
Я могу добиться того, что я пытаюсь сделать в остальной части сценария, сделав несколько вызовов в json-файле, но я предполагаю, что лучше просто запросить json один раз и вставить его в переменную и попытаться сработать ? Я относительно новичок в этой настройке, поэтому любые предложения были оценены.
Эффективно из-за кода, приведенного ниже, я хочу получить доступную переменную allMatches за пределами метода getData после ее запуска.
Спасибо за ваше время, вся помощь очень ценится.
var AppInfo = {
getData : function(){
var responseJsonVar;
var callbackName, script, newInfo, mydata,allMatches;
// Get a random name for the callback
callbackName = "checkGames" + new Date().getTime() + Math.floor(Math.random() * 10000);
// create the jsonP script call on the page
script = document.createElement('script');
script.src = "http://www.hookhockey.com/index.php/temp-gillian/?callback=" + callbackName;
document.documentElement.appendChild(script);
// call the json
window[callbackName] = function(data) {
responseJsonVar = data; // this is the info back from the json file
//the filtered data source from json
var allMatches = responseJsonVar["matches"];
console.dir('allMatches inside the function: ' + allMatches); //this comes back fine
// Remove our callback ('delete' with 'window properties fails on some versions of IE, so we fall back to setting the property to 'undefined' if that happens)
try {
delete window[callbackName];
}
catch (e) {
window[callbackName] = undefined;
}
//I've tried putting a return value (return allMatches) in here and then calling window[callbackName]() outside of the function but I get undefined for matches
}; // end window[callbackName] function
//this is what I think I should be doing to get the info out on its own
console.dir('allMatches OUTSIDE the function: ' + allMatches); //this doesn't come back 'allMatches is not defined'
} //end getdata method
} //end AppInfo
AppInfo.getData();
отлично, спасибо за эту информацию, очень ценим! –
Добро пожаловать! Рад помочь. – MikeJ