jquery каждая функция не дает результатов? - PullRequest
0 голосов
/ 31 января 2012

У меня есть вызов AJAX, тянущий файл JSONP, он выдаст мне данные в консоли, но когда я пытаюсь поместить результаты в массив: topics, я получаю ошибку.

    $.ajax({
        type: 'GET',
        url: 'http://demo.omnigon.com/christian_bovine/nbapulse/json/all.json',
        dataType : 'jsonp',
        jsonp : "callback",
    jsonpCallback: "onDataLoaded",

        success : function(data) {
            console.log(data); 
            var topics = [];

            $.each(data, function(i, item){
                topics.push({
                    username: item.TopicName,
                    mentions: item.LastHourCount,
                    totalcount: item.TotalCount,
                    daycount: item.LastHourCount
                });
            });
            console.log(topics);
        $('#leader').tmpl(topics).appendTo('#top3');
        } 

    });

Если я использую $.each(data.results, function(i, item), он отобразит мой шаблон jQuery, но все данные будут undefined. Так что я думаю проблема в этом?

Ответы [ 2 ]

2 голосов
/ 31 января 2012
$.each(data.data, function(i, item){

Это должно сработать, ваш объект выглядит так:

{
    data : [
        {},
        {},
        ...
    ]
}

Итак, вам нужно было выбрать свойство data, прежде чем итерировать результаты.

Вот демоверсия: http://jsfiddle.net/YrJXG/

0 голосов
/ 31 января 2012

Ваш $ .each должен выглядеть так:

$.each(data.data, function(i, item){
                    topics.push({
                        username: item.TopicName,
                        mentions: item.LastHourCount,
                        totalcount: item.TotalCount,
                        daycount: item.LastHourCount
                    });
                });

Обратите внимание, что «data.data» не «data».

...