Загрузка jsTree Children из JSON - PullRequest
       6

Загрузка jsTree Children из JSON

2 голосов
/ 11 января 2011

Я довольно плохо знаком с JavaScript, особенно с использованием jQuery.Я пытаюсь использовать jsTree, пытаясь заполнить его через JSON.Теперь я считаю, что на мой вопрос ответили по связанным вопросам, но я не могу найти конкретного ответа на то, что я делаю.Я также сослался на документацию jsTree, но до сих пор не могу понять.

ниже приведен код, который я пробую

buildTree : function(name, url, nodeRef) {

     $("#"+name).jstree({ 
      "json_data" : {
    "ajax" : {
     "url" : url + nodeRef,
     "data" : function(n) {
      return { id : n.attr ? n.attr("id") : 0 };
     }
    }
   },

   "plugins" : [ "themes", "json_data" ]
  });
    }

Это в основном копиякод в документации jsTree для JSON.Здесь происходит то, что я могу заполнить корневую папку дерева его содержимого.Ниже приведен ответ JSON, который я получаю.

[
 {
 "attr":{"id":"a3e6a1f0-ec50-4215-a6df-2065eb09115e","rel":"file"},
 "data":"File 1","state":""
 },
 {
 "attr":{"id":"b38e4a72-875b-4d69-95d3-5437f7e65575","rel":"folder"},
 "data":"Folder 1","state":"closed"
 }
]

Но когда я щелкаю узел папки, он заполняется тем же запросом JSON, имеющим те же значения.

Я знаю, что виновником является

"url" : url + nodeRef,

, но я заблудился от того, как я собираюсь передать идентификатор, который я получаю из ответа, заменив начальное значение nodeRef.Я пытался использовать обратные вызовы, но ничего не происходит.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 19 января 2011

Следующая часть в вашем коде уже заботится о добавлении параметра строки запроса "id" к URL-адресу ajax.Функция возвращает объект с парами ключ / значение, которые будут использоваться для параметров строки запроса для запрашиваемого URL.

"data" : function(n) {       return { id : n.attr ? n.attr("id") : 0 };      } 

Я не уверен, какова цель переменной nodeRef в вашем коде.Это найти корневой узел?Если да, то не могли бы вы использовать для этого другой параметр строки запроса?

Используйте fiddler для подтверждения того, что URL-адреса, созданные с помощью jsTree, соответствуют вашим ожиданиям.Возможно, в настоящее время он создает URL с двумя параметрами строки запроса id и всегда использует тот, который указан в вашей переменной nodeRef?

...