Я использую jstree для отображения нескольких узлов (включая плагины DnD, Type и Contextmenu). Я без проблем получаю все дерево, показываю его правильно, и я могу выбрать любой узел, но после использования операции обновления (с помощью Ajax-вызова сервера) на одном узле я хочу обновить это (и только это) узел. Операция refresh_node(myNode) - это то, что мне нужно, и вызов Ajax работает нормально и дает мне только ту часть поддерева, которая мне нужна.
Но когда jstree пытается перерисовать, я получаю ошибку о несуществующей переменной. Я отладил его и заметил, что родительский массив некоторых узлов исчез.
Я использую альтернативный формат JSON для загрузки своего дерева с этой конфигурацией:
core{
multiple: false,
data {
url: "my_url_string_to_server",
data: function(node) { return { id: nodeId, /*other params*/ } }
}
}
/*other plugins config*/
и мой вызов refresh_node:
//nodeId is a string with the name of the node I want to refresh.
var node = $.jstree.reference('.tree-data').get_node(nodeId);
$.jstree.reference('.tree-data').refresh_node(node);
//I tried refresh_node(nodeId) too, with the same error result.
Все узлы моего дерева: { "id", "UniqueId", "parent": "Parent"}, "text", "Name"}, "state": {}, "type": "type" "li_attr" : { { "title", "title" }, { "class", "class" } } "a_attr": { { "class", "class" } }, "data": { { "dbid", "Id " }, { "dbparent", "ParentId" }, { "status", "statusId" } } }
как указано в документации jstree (см. 'альтернативный формат JSON')
возврат списка из них (требуемый узел и все дочерние элементы) в результате вызова ajax (не имеет значения, является ли вызов для корневого узла или другого некорневого узла)
Пожалуйста, подскажите, что я делаю не так?
Огромное спасибо заранее.