У меня здесь немного проблем. У меня есть вызов, который возвращает некоторый JSON, который хорошо сформирован. Я проверил его на JSON Lint.
JSON: {"facilities":[{"facilityId":"123","facilityName":"Pizza Hut"}]}
Я могу видеть эти данные в своем поле оповещения с помощью этого кода:
$(function () {
var availableTags = [
// TODO
];
$("#tags").autocomplete({
source: availableTags
});
$("#tags").focusout(function () {
var result = null;
$.ajax({
beforeSend: function() {
alert("Testing");
},
url: "FacilitiesAsync",
success: function(data) {
result = data;
},
complete: function () {
alert(result);
}
});
});
});
Однако, когда я пытаюсь выполнить этот код, я никогда не вижу, чтобы функция processFacilities срабатывала. Я не уверен, что делаю неправильно. Работа $ getJSON DOES работает, но функция обратного вызова никогда не выполняется.
$.getJSON('FacilitiesAsync','sourceDb=sampleDb',processFacilities);
function processFacilities(data) {
var infoHtml = '';
$.each(data, function(facilities, facilityInfo) {
infoHtml += '<p>Facility: ' + facilityInfo + '<br></p>';
}); // end of each
$('#info').html(infoHtml);
};
Я не пытаюсь запустить оба из них одновременно. Я прокомментировал это, пока я тестирую другого. Эти скрипты находятся внутри блока моего приложения MVC4.
Мой div
<div id="info"></div>
Вы пропускаете имя facilityName
внутри функции. Попробуй это:
$.getJSON('FacilitiesAsync','sourceDb=IPACS',processFacilities);
function processFacilities(data) {
var infoHtml = '';
$.each(data, function(facilities, facilityInfo) {
infoHtml += '<p>Facility: ' + facilityInfo.facilityName + '<br></p>';
}); // end of each
$('#info').html(infoHtml);
};
я думаю, что сочетание обоих сделает это правильно
:
$("#tags").focusout(function () {
var result = null;
$.ajax({
beforeSend: function() {
alert("Testing");
},
url: "FacilitiesAsync",
success: function(data) {
var infoHtml = '';
$.each(data, function(facilities, facilityInfo) {
infoHtml += '<p>Facility: ' + facilityInfo + '<br></p>';
}); // end of each
$('#info').html(infoHtml);
},
complete: function () {
}
});
});
});