使用Fancy tree的loadKeyPath时出错

时间:2014-12-08 04:03:30

标签: jquery fancytree

我正在使用FancyTree 2.6.0。树大部分工作得非常好,除非我想使用loadKeyPath函数遍历特定的懒节点。我收到以下错误:

Error: Fancytree assertion failed   
...,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFuncti...
jquery....11.1.js (line 2, col 1808)

我正在使用以下代码遍历一个密钥路径。

tree.loadKeyPath(treePath, function(node, status)
{
    console.log("Node ["+node.title+"] status ["+status+"]");
    node.data.shouldPromptForFilter=false;
    if (status == "loading")
        node.data.shouldPromptForFilter=false;
    else if (status == "loaded")
    {
        console.log("intermediate node " + node);
        node.setExpanded(true);
    }
    else if (status == "ok")
        node.setActive(true);
});

它扩展已经加载的节点就好了,但是当它必须加载延迟节点时我会收到错误。从服务器获取的数据如下所示。收到数据后发生错误。

[{"isRoot":"false","lazy":false,"tooltip":"evil-kirk.goldenrod.trek.dms.","childCount":"0","isElipsis":"false","shouldPromptForFilter":"true","title":"evil-kirk.goldenrod.trek.dms.","key":"e4d17462-64c2-4215-9097-7f91480f8c0c","status":"0"}]

我已经花了几个小时试图让它工作但我担心如果这不起作用我可能不得不回到dynatree。我真的很喜欢fancytree,但只有这一个问题有点让我回头。

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:3)

好的我通过移动setExpanded()函数调用解决了这个问题。

tree.loadKeyPath(treePath, function(node, status)
{
    console.log("Node ["+node.title+"] status ["+status+"]");
    if (status == "loading")
        node.data.shouldPromptForFilter=false;
    else if (status == "loaded")
    {
        console.log("intermediate node " + node);
    }
    else if (status == "ok")
    {
        node.setExpanded(true);
        node.setActive(true);

});