更改JSTree标识叶节点的方式

时间:2016-03-21 14:30:35

标签: angularjs jstree

我想改变JSTree识别叶节点的方式。今天,它检查节点的children属性以查看它是否为布尔值true或具有至少一个子节点的数组。 Reference

我想创建一个名为isLeaf的节点属性,以便jsTree能够理解该节点可以打开子树的AJAX加载。

我尝试覆盖默认的is_parent方法,如下所示:

$.jstree.core.prototype.is_parent = function(node) {
    return !node.original.isLeaf;
};

但由于某些原因,并未针对所有树节点调用此方法。

我正在使用ngJsTree

有谁知道我怎么能实现这种行为?

1 个答案:

答案 0 :(得分:0)

我设法通过迭代AJAX响应并将没有子节点的每个节点更改为children = true来处理它。

success : function(nodeRoot) {

    var validateChildrenArray = function(node) {

        if (!node.children || node.children.length === 0) {
            node.children = true;
        }
        else {
            for (var i = 0; i < node.children.length; i++) {
                validateChildrenArray(node.children[i]);
            }
        }

    };
    for (var i = 0; i < nodeRoot.length; i++) {
        validateChildrenArray(nodeRoot[i]);
    }
}

等待更好的解决方案...