Javascript jsTree惰性搜索

Javascript jsTree惰性搜索,javascript,jstree,jstree-search,Javascript,Jstree,Jstree Search,是否可以使用JsTree进行“惰性搜索”,其中搜索结果可以是包含当前不在树中的节点的路径?我有一个很大的树,我正在惰性地加载节点,希望能够处理包含当前未加载节点的搜索 到目前为止,唯一对我有效的方法是使用搜索回调,替换树中的所有数据并刷新。我想知道是否有一种更简单的方法来实现这一点 旧文件似乎暗示了这一点: “此对象可用于在每个服务器上向服务器发出请求 搜索-在使用异步树时非常有用。这样可以返回 在执行实际DOM搜索之前需要加载的ID数组 已执行(以便匹配搜索的所有节点 例如,如果用户搜索“字符

是否可以使用JsTree进行“惰性搜索”,其中搜索结果可以是包含当前不在树中的节点的路径?我有一个很大的树,我正在惰性地加载节点,希望能够处理包含当前未加载节点的搜索

到目前为止,唯一对我有效的方法是使用搜索回调,替换树中的所有数据并刷新。我想知道是否有一种更简单的方法来实现这一点

旧文件似乎暗示了这一点:

“此对象可用于在每个服务器上向服务器发出请求 搜索-在使用异步树时非常有用。这样可以返回 在执行实际DOM搜索之前需要加载的ID数组 已执行(以便匹配搜索的所有节点 例如,如果用户搜索“字符串”,您将得到 在服务器端,检查数据库并发现存在 包含该字符串的节点。但该节点是其他节点的子节点 节点等-因此在响应中必须返回节点的路径 (不带节点本身)作为ID:[“#根节点”、“#子节点_3”] 这意味着jstree将在执行客户端之前加载这两个节点 侧面搜索,确保节点可见。“

我试着用下面的代码来测试它。搜索确实会触发url调用,但如果返回的节点不存在,jsTree似乎没有使用响应或抛出错误。我也没有看到对服务器的另一个查询,这可能是树中不存在的节点所需要的:

<html>

<body>
<div id="jstree">tree goes here</div>
<input type="button" class="button" value="Search" id="search" style="">
</body>

<link rel="stylesheet" href="static/dist/themes/default/style.min.css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="static/dist/jstree.js"></script>
<script type="text/javascript">
    $("#search").click(function () {
        console.log("search");
        $("#jstree").jstree("search", "test");

    });

    $('#jstree').jstree({
        core: {
            data: {
                dataType: "json",
                url: function (node) {
                    console.log(node.id);
                    return node.id === "#" ? "http://127.0.0.1:5000/" : "http://127.0.0.1:5000/";
                }
            }
        },
        search: {
            case_insensitive: true,
            ajax: {

                url: "http://127.0.0.1:5000/",
                "data": function (n) {
                    return { id: n.attr ? n.attr("id") : 0 };

                }

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


</script>

</html>

树在这里
$(“#搜索”)。单击(函数(){
控制台日志(“搜索”);
$(“#jstree”).jstree(“搜索”、“测试”);
});
$('#jstree').jstree({
核心:{
数据:{
数据类型:“json”,
url:函数(节点){
console.log(node.id);
return node.id==“#”?”http://127.0.0.1:5000/" : "http://127.0.0.1:5000/";
}
}
},
搜索:{
不区分大小写:正确,
阿贾克斯:{
url:“http://127.0.0.1:5000/",
“数据”:功能(n){
返回{id:n.attr?n.attr(“id”):0};
}
}
},
插件:[“json_数据”,“搜索”]
})
;

现在的解决方案似乎对我不起作用。jsTree似乎没有对服务器的响应做任何事情

我可能很晚才回答这个问题,但这里有一个类似的问题:

接受的答案包含发送到服务器的内容以及响应内容的详细信息(唯一父ID数组)

确保从
search.ajax.data
中删除函数-此属性不能是函数-它是标准的jQuery ajax配置(因此它应该是一个对象,jstree将向其添加
str
属性)

顺便说一句,由于相同的原产地政策,请确保您可以实际将请求发送到
127.0.0.1:5000
——也许您需要添加CORS头

如果这没有帮助,请提供服务器响应(标题和正文)