jstree:如何取消删除/恢复节点

jstree : how to undelete / restore a node

我在带有上下文菜单插件的应用程序中使用 jsTree。

删除节点时,我有一个 ajax 请求在我的数据库上执行操作。

只有当 ajax returns a operation = true 参数时,我才想从视图中实际删除节点。

如何取消删除已使用以下代码删除的 jstree 节点:

function (data) {
    var inst = $.jstree.reference(data.reference),
        obj = inst.get_node(data.reference);
    if(inst.is_selected(obj)) {
        inst.delete_node(inst.get_selected());
    }
    else {
        inst.delete_node(obj);
    }
}

我只在调用成功时从树中删除节点。先删除节点,然后调用,如果失败再尝试重新添加节点是没有意义的。这是一个仅在 ajax 调用成功时才删除节点的示例:

var node = $('#tree').jstree('get_selected');

$.ajax({
    url: link,
    type: 'GET',
    data: { id: node.attr('id') },
    async: false,
    success: function (data, text) {
        $('#tree').jstree('delete_node', node);
    },
    error: function (request, status, error) {
    }
});

ps。这将获得当前选择的节点