如何用新的 JSON 数据刷新 jsTree?
How to refreseh jsTree with new JSON data?
我有一个文件上传元素,它在更改时扫描文件名并做一些事情来获取 VALID treeJSON
变量(我检查过,我的函数作品。)。现在,当函数第二次检测到更改时,显然 treeJSON
将要更新,我希望它更新树。我已经尝试了各种方法,例如 refresh()、destroy() 等。但是我无法在同一页面中信任新树 WITHOUT 页面重新加载 input.onchange
.
这是一个片段。我没有包括所有功能。有用。重要的部分是使用 treeJSON
input.onchange = function (e) {
\ something
}
var treeJSON = someVar;
$('#tree').jstree({ 'core' : {
'check_callback' : true,
'data' : treeJSON
} });
感谢任何帮助!谢谢
您只需告诉 jstree 一次加载根的位置 (core.data)。刷新时,树将根据此内容重新填充。
我会这样做:
var treeJSON = 'originaltree';
input.onchange = function (e) {
// something
treeJSON = $.parseJSON(newtree); // if newtree is json
var tree = $('#tree').jstree(true);
tree.refresh();
}
$('#tree').jstree({
'core': {
'check_callback': true,
'data': treeJSON
}
});
或者如果您想根据哪个节点更加具体:
$('#tree').jstree({
'core': {
'check_callback': true,
'data': function (node, cb) {
if (node.id === '#') { //Load root, will fire on first load as well as on refresh
cb.call(this, treeJSON);
}
}
}
});
我有一个文件上传元素,它在更改时扫描文件名并做一些事情来获取 VALID treeJSON
变量(我检查过,我的函数作品。)。现在,当函数第二次检测到更改时,显然 treeJSON
将要更新,我希望它更新树。我已经尝试了各种方法,例如 refresh()、destroy() 等。但是我无法在同一页面中信任新树 WITHOUT 页面重新加载 input.onchange
.
这是一个片段。我没有包括所有功能。有用。重要的部分是使用 treeJSON
input.onchange = function (e) {
\ something
}
var treeJSON = someVar;
$('#tree').jstree({ 'core' : {
'check_callback' : true,
'data' : treeJSON
} });
感谢任何帮助!谢谢
您只需告诉 jstree 一次加载根的位置 (core.data)。刷新时,树将根据此内容重新填充。
我会这样做:
var treeJSON = 'originaltree';
input.onchange = function (e) {
// something
treeJSON = $.parseJSON(newtree); // if newtree is json
var tree = $('#tree').jstree(true);
tree.refresh();
}
$('#tree').jstree({
'core': {
'check_callback': true,
'data': treeJSON
}
});
或者如果您想根据哪个节点更加具体:
$('#tree').jstree({
'core': {
'check_callback': true,
'data': function (node, cb) {
if (node.id === '#') { //Load root, will fire on first load as well as on refresh
cb.call(this, treeJSON);
}
}
}
});