jsTree AJAX 搜索一些子节点?
jsTree AJAX search with some node childs?
我尝试在 jsTree 中实现 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 请求 - str
和 inside
:
GET /ajax/root-nodes?str=foo&inside=root1
您的响应应该是一个 JSON 数组,其中包含需要加载(和打开)的所有唯一父 ID。您可能希望通过执行服务器端搜索来构建此数组,收集每个匹配项的父项,然后将它们组合到一个数组中(并且只留下唯一的条目):
["root1","somenode"]
我尝试在 jsTree 中实现 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 请求 - str
和 inside
:
GET /ajax/root-nodes?str=foo&inside=root1
您的响应应该是一个 JSON 数组,其中包含需要加载(和打开)的所有唯一父 ID。您可能希望通过执行服务器端搜索来构建此数组,收集每个匹配项的父项,然后将它们组合到一个数组中(并且只留下唯一的条目):
["root1","somenode"]