Как изменить поиск Jstree на поиск AJAX
Я пытаюсь превратить свой поиск по Jstree в поиск AJAX со следующей конфигурацией, моя проблема заключается в том, что, хотя он отправляет "str" на URL, и я получаю данные в виде json ["#id"], но jstree по-прежнему делает свой нормальный поиск
// $.jstree.defaults.search.ajax = true;
$('#node_tree').jstree({
'core' : {
'data': fill_tree(),
},
"plugins": ["search", "state","themes"],
'search': {
'show_only_matches': true,
'ajax': {
'url': '/device/jstree',
'dataType': 'json',
'type': 'GET'
}
Мой ajax уже работает, и мне нужен jstree, чтобы показать мой жестко запрограммированный результат вместо поиска по умолчанию.
3 ответа
Просто справка для тех, у кого такая же проблема, хотя jstree правильно отправлял вызов ajax, он показывал собственный результат, а не мой, и я не мог найти способ изменить это. Так что я ушел в отставку, чтобы вернуть совершенно новые данные JSON и:
$('#tree').jstree(true).settings.core.data = newJsonData;
$('#tree').jstree(true).refresh();
Я знаю, что это был не самый лучший вариант, но на данный момент он добился цели.
Включите поиск Ajax в JSTree Config.
$.jstree.defaults.search.ajax = true
Обратитесь к этому для получения дополнительной информации из этих ответов:
/questions/46556114/jstree-asinhronnyij-poisk-zapusk-zagruzki-novyih-uzlov/46556132#46556132
/questions/34444754/jstree-poisk-s-ajaxjson-ne-vyizyivaet-url/34444764#34444764
/questions/45710626/jstree-ajax-poisk-s-nekotoryimi-dochernimi-uzlami/45710641#45710641
Добавьте функцию данных к вашему Ajax.
'data' : function(str) {
return { "search_str" : str };
},
Я столкнулся с той же проблемой в jstree, и у меня работала конфигурация ниже.
Вызовите функцию поиска с указанными ниже параметрами. # будучи корневым узлом. ( Ссылка)
$('#tree').jstree(true).search(v, false, true, '#');
Вызов ajax для поиска должен возвращать только родительские узлы найденного потомка. Если результатом поиска является child1, child2, то поисковый ajax должен возвращать только соответствующего родителя в формате json
["parent1", "parent2"]