Отображение данных JSON с помощью jQuery

0

У меня здесь немного проблем. У меня есть вызов, который возвращает некоторый 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>
  • 0
    Как вы ЗНАЕТЕ, что это работает? Кажется, что нет, иначе этот звонок произойдет. Что говорит ваша вкладка Сеть?
  • 0
    Я знаю, что JSON возвращается. Я прошел через код. То, что я вижу сейчас, это «Объект: неопределенный»
Теги:
callback
asp.net-mvc

2 ответа

1
Лучший ответ

Вы пропускаете имя 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);
};
  • 0
    Я попытался добавить свойство entityName к объекту unitInfo и до сих пор ничего не вижу в пользовательском интерфейсе. Я также добавил выше моего <div>, где это должно быть показано.
  • 0
    Да, я пока не работаю над автозаполнением. Это цель в конце концов.
Показать ещё 8 комментариев
0

я думаю, что сочетание обоих сделает это правильно

:

        $("#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 () {

            }
        });
    });
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню