Как я могу прочитать возвращенный объект из метода jQuery $ .get - PullRequest
0 голосов
/ 15 мая 2011

Мне было интересно, как извлечь данные из возвращенного объекта с помощью метода jQuery $ .get (). IE:

function dynamicData(file){
    var wantedData;
    var getObj = $.get(file);
    wantedData = getObj.complete(function(data){return data;});
    return wantedData;
}
$(window).load(function(){
     var newData = dynamicData('somefile');
     alert(newData);
});

Я не хочу просто прикреплять данные к какому-то DOM, как только он получит новые данные.

Я получаю оповещение об объекте, но как мне получить данные внутри него? Я понятия не имею, какова структура объекта на данный момент, так как newData является объектом, но newData [0] имеет значение null. Случайно ли это какой-то сопоставленный объект с парами ключ: значение? или нам не разрешено делать это таким образом?

Ответы [ 3 ]

7 голосов
/ 15 мая 2011

Вы не можете вернуться с Ajax-звонка. Это асинхронно.

Делайте все, что вы хотите сделать с данными в обратном вызове успеха.

См. руководство по get , в котором есть примеры.

3 голосов
/ 15 мая 2011

Поскольку $ .get () является асинхронным, вы вызываете свое предупреждение, прежде чем get вернет какие-либо данные.

Лучший подход был бы:

function dynamicData(file,callback){
  $.get(file,function(data){
    callback(data);
  });
}

$(window).load(function(){
  dynamicData('somefile', alert);
});

, который предупредит (данные), когда он станет доступным.

3 голосов
/ 15 мая 2011

$. Get требует функцию обратного вызова, которая будет получать данные, как только будет завершена загрузка.Он не будет напрямую возвращать данные вызывающей функции!

Пожалуйста, обратитесь к документации jQuery.get для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...