Я пытаюсь получить элементы из моего JSON API, как в примере ниже. Дело в том, что оно не работает должным образом. Я получаю только значения от One Hub вместо всех из них.Получение JSON в цикле не извлекает все элементы в JQuery
/api/hubsUser /: id - возвращает JSON со всеми моими концентраторами и /api/sensorsHub /: id - возвращает JSON со всеми моими датчиками, имеющими элемент hubID.
var tableContent = '';
var wholeContent = '';
var hubList = [];
$.getJSON('/api/hubsUser/' + document.getElementById("txt").innerHTML, function (result) {
$.each(result.data, function() {
//alert(this.hubID);
hubList.push(this.hubID);
});
$.each(hubList, function (i, hub) {
// alert(hub);
$.getJSON('/api/sensorsHub/' + hub, function (data) {
$.each(data.data, function() {
//alert(this.sensorID);
tableContent += '<tr>';
tableContent += '<td><a href="#" class="linkshowuser" rel="' + this.sensorID + '">' + this.sensorID + '</a></td>';
tableContent += '<td><a href="#" class="linkshowuser" rel="' + this.hubID + '">' + this.hubID + '</a></td>';
tableContent += '<td><a href="#" class="linkshowuser" rel="' + this.desc + '">' + this.desc + '</a></td>';
tableContent += '<td><a href="#" class="linkshowuser" rel="' + this.state + '">' + this.state + '</a></td>';
tableContent += '</tr>';
});
wholeContent += tableContent;
});
});
$('#sensorList table tbody').html(wholeContent);
});
};
или использовать 'append' и добавить еще добавить во внутреннем цикле, если порядок не важен – charlietfl
Для того, чтобы быть честным, я не знаю, как бросить курить, чтобы реализовать это с методами 'when' и' jQuery.Deferred'. Проблемным является метод '.each', потому что я не знаю, как добавить, когда или сделал обратный вызов. – user3463645
Затем сделайте так, как предлагалось @charlietfl - переместите '$ ('# sensorList table tbody'). Append (wholeContent);' прямо под 'wholeContent + = tableContent;'. И не забудьте поместить 'var tableContent = ''' перед '$ .each (data.data, function() {' –