如何使用新的JSON数据刷新jsTree?

时间:2015-02-15 20:13:28

标签: javascript jquery json tree jstree

我有一个文件上传元素,在更改后会扫描文件名并执行某些操作以获得 VALID treeJSON变量(我已经检查过,我的功能正常工作。)。现在当函数第二次检测到更改时,显然treeJSON将更新,我希望它更新树。我尝试过各种各样的方法,例如,refresh(),destroy()等。但我没有能够在同一页面中对一棵新树进行争论没有页面重新加载{{1} }。

这是一个片段。我没有包括所有的功能。有用。重要部分正在使用input.onchange

treeJSON

任何帮助表示赞赏!感谢

1 个答案:

答案 0 :(得分:1)

您只需告诉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);
            }
        }

    }
});