jsTree AJAX 搜索一些子节点?

jsTree AJAX search with some node childs?

我尝试在 jsTree 中实现 ajax 搜索,但只在根节点之一内。

我阅读了文档,发现了一些关于以下方面的信息:

$.jstree.defaults.search.ajax

A str (which is the search string) parameter will be added with the request, an optional inside parameter will be added if the search is limited to a node id.

我的搜索 AJAX 配置:

        "search": {
        // search config
        "show_only_matches": true,
          'ajax': {
            'url': "/ajax/root-nodes"
          }
        },

jsSearch 调用:

$tree.jstree(true).search(searchText);

我也使用延迟加载子节点。

有人这样做吗?

在您的调用中,您没有将搜索限制在特定节点:
http://www.jstree.com/api/#/?q=search%28&f=search%28str%20[,%20skip_async]%29

例如,如果您的根节点 ID 是 "root1",请使用:
$tree.jstree(true).search(searchText, false, true, 'root1');

调用 search 函数后,将根据您的配置发出 AJAX 请求。因此,在您的情况下,如果用户搜索 "foo" - 这将是一个带有两个参数的 GET 请求 - strinside:
GET /ajax/root-nodes?str=foo&inside=root1

您的响应应该是一个 JSON 数组,其中包含需要加载(和打开)的所有唯一父 ID。您可能希望通过执行服务器端搜索来构建此数组,收集每个匹配项的父项,然后将它们组合到一个数组中(并且只留下唯一的条目):
["root1","somenode"]