2015-10-19 2 views
3

Я пытаюсь использовать fancytree для отображения некоторых данных, возвращенных из службы php rest. Данные, возвращаемые службой, были проверены с помощью JSONLint и отображаются в формате, указанном в документах fancytree.fancytree не загружает данные json

Если у меня есть окно инструментов разработчика (Chrome), он показывает ошибку «Неиспользуемая ошибка: не реализована» в файле jquery-1.11.3.min.js: 2.

Когда я подтвердил возвращаемые данные JSON, я использовал Advanced Rest Client (приложение Google), и я удалил двойные кавычки, которые окружали строку, отображаемую Advanced Rest Client, а затем вставляли значение в JSONLint.

Мой JQuery код:

<script type="text/javascript"> 
    $(function(){ 
     var phpAPI = "http://localhost/clubjudge/api/JSONClassTree2"; 
     $.getJSON(phpAPI) 
      .done(function(json) { 
       alert(json); 
       $("#tree").fancytree({ 
       source: json 
       } 
      ); 
      }) 
      .fail(function(jqxhr, textStatus, error) { 
       var err = textStatus + ", "+ error; 
       console.log("Request Failed: "+ err); 
    }); 

}); 
</script> 

Любая помощь очень ценится, как я баловаться с этим в течение нескольких дней в настоящее время. PS. Я надеюсь, что включенный код отформатирован правильно. «Предварительный просмотр», похоже, не выглядит правильным.

Понятно, что лучше разместить данные JSON.

[ 
{"title":"A - Australian Native","key":"1","children":[ 
    {"title":"A1 - Australian Native Dendrobium Species","key":"7"}, 
    {"title":"A2 - Australian Native Any Other Species","key":"8"}, 
    {"title":"A3 - Australian Native Dendrobium Hybrid","key":"9"}, 
    {"title":"A4 - Australian Native Any Other Hybrid","key":"10"}, 
    {"title":"A5 - Australian Native Seedling","key":"11"} 
]}, 
{"title":"B - Cymbidium","key":"2","children":[ 
    {"title":"B1 - Standard Type Cymbidium","key":"3"}, 
    {"title":"B2 - Intermediate Type Cymbidium","key":"4"}, 
    {"title":"B3 - Miniature Type Cymbidium","key":"5"}, 
    {"title":"B4 - Cymbidium Species","key":"6"} 
]} 
] 

Извините, я понимаю, что есть много. Еще раз это демонстрирует Advanced Rest Client (после обрезки внешних двойных кавычек).

ответ

0

Вы можете загрузить данные в формате JSON ввода в запросе на источник:

$("#tree").fancytree({ 
    source: $.ajax({ 
    url: "/clubjudge/api/JSONClassTree2", 
    dataType: "json" 
    }) 
}); 
0

Не уверен, что это решит вашу проблему, но вам не нужно выдавать отдельный запрос ajax. Fancytree поддерживает это непосредственно:

$("#tree").fancytree({ 
    source: { 
    url: "/clubjudge/api/JSONClassTree2", 
    cache: false 
    }, 
    ... 
}); 

Смотрите здесь для подробностей: https://github.com/mar10/fancytree/wiki/TutorialLoadData

0

Возможно переменная JSON является JSON строка и FancyTree ожидает это объект JS, поэтому сначала следует использовать JSON.parse(). Это помогло мне в моем случае.