我正在尝试使用以下配置将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来显示我的硬编码结果,而不是默认搜索结果。
答案 0 :(得分:0)
在JSTree配置中启用Ajax搜索。
$.jstree.defaults.search.ajax = true
请参阅此答案以获取此答案中的更多信息:
https://stackoverflow.com/a/20316921/1533666
https://stackoverflow.com/a/20278351/1533666
https://stackoverflow.com/a/31646865/1533666
向Ajax添加数据功能。
'data' : function(str) {
return { "search_str" : str };
},
答案 1 :(得分:0)
只是对任何有相同问题的人的参考,即使jstree正确发送ajax调用,它显示它自己的结果而不是我的,我找不到任何改变它的方法。 所以我辞职了,以返回一个全新的JSON数据,并且:
$('#tree').jstree(true).settings.core.data = newJsonData;
$('#tree').jstree(true).refresh();
我知道这不是最好的选择,但目前它已经成功了。
答案 2 :(得分:0)
我在jstree面临同样的问题,以下配置对我有用。
使用下面提到的参数调用搜索功能。 #是根节点。 (Ref)
$('#tree').jstree(true).search(v, false, true, '#');
对搜索的ajax调用应仅返回找到的子节点的父节点。如果搜索结果是child1,则child2然后搜索ajax应该只返回json格式的相应父级
["parent1", "parent2"]