jsTree AJAX搜索一些节点子节点?

时间:2015-07-27 06:24:08

标签: jstree jstree-search

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

我阅读了文档,并找到了一些关于:

的信息

$.jstree.defaults.search.ajax

  

str(即搜索字符串)参数将随请求一起添加,如果搜索仅限于节点ID,则会添加可选的inside参数。

我的搜索AJAX配置:

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

jsSearch电话:

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

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

有人这样做吗?

1 个答案:

答案 0 :(得分:4)

在通话中,您不会将搜索限制在特定节点:
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"]