首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用延迟加载扩展keypath

使用延迟加载扩展keypath
EN

Stack Overflow用户
提问于 2012-09-19 15:15:25
回答 1查看 3K关注 0票数 2

我有一个完整的树,有多个项目和多个级别,树是用ajax调用构建的,并使用惰性节点

所以现在我想添加这个函数,这样我的树就可以加载和选择项目,如果我给出了完整的路径,但在我选择项目之前,我需要确保项目加载了惰性加载,这样我就可以访问它。

我找到了函数.loadKeypath(),因此为了进行测试,我用以下命令检索了节点的完整路径

代码语言:javascript
复制
node.getKeyPath();

所以路径是/12/16/17/18

所以我想我应该把这段代码放在ajax数据加载之后

代码语言:javascript
复制
onPostInit: function(isReloading, isError){
                $("#tree").dynatree("getTree").loadKeyPath("/12/16/17/18", function(node, status){
                    if(status == "loaded") {
                        // 'node' is a parent that was just traversed.
                        // If we call expand() here, then all nodes will be expanded
                        // as we go
                        node.expand();
                    }else if(status == "ok") {
                        // 'node' is the end node of our path.
                        // If we call activate() or makeVisible() here, then the
                        // whole branch will be exoanded now
                        node.activate();
                    }else if(status == "notfound") {
                        var seg = arguments[2],
                            isEndNode = arguments[3];
                    }
                });
            }

但现在我在控制台中收到了这样的警告:

代码语言:javascript
复制
Node not found: 12 jquery.dynatree.js:49

Adn这是完整的日志

代码语言:javascript
复制
9:12:27.862 - Dynatree._create(): version='$Version: 1.2.0$', debugLevel=2. jquery.dynatree.js:52
9:12:27.865 - DynaTree.persistence: 
Object
 jquery.dynatree.js:52
9:12:27.867 - Dynatree._load(): read tree structure... jquery.dynatree.js:52
9:12:27.868 - Dynatree._init(): send Ajax request... jquery.dynatree.js:52
9:12:27.869 - Class.create.removeChildren(false) jquery.dynatree.js:52
9:12:27.876 - Dynatree._load(): render nodes... jquery.dynatree.js:52
9:12:27.877 - Dynatree._load(): bind events... jquery.dynatree.js:52
9:12:27.885 - Dynatree._load(): postInit... jquery.dynatree.js:52
9:12:27.887 - Dynatree._init(): done. jquery.dynatree.js:52
9:12:27.889 - ui.dynatree._init() was called; no current default functionality. jquery.dynatree.js:52
9:12:29.483 - Removed leading root key. jquery.dynatree.js:52
9:12:29.484 - Class.create._loadKeyPath(12/16/17/18) jquery.dynatree.js:52
9:12:29.484 - Node not found: 12 jquery.dynatree.js:49
9:12:29.485 - trigger nodeLoaded.dynatree.tree._1 jquery.dynatree.js:52
9:12:29.485 - dtnode._expand(true) IGNORED - 
Class.create
 jquery.dynatree.js:52

那么,如何加载嵌套在其他节点中的节点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-21 14:45:39

这是一个供将来参考的答案。

经过一些调试和dynatree开发人员的帮助,我们提出了一个解决方案,如果你想加载一个键路径,使用一个字符串作为键,而不是一个整数。

而不是

代码语言:javascript
复制
 "icon": false,
        "checkbox": false,
        "title": "xxxxxxxx",
        "key": 23,
        "type": "child"

使用

代码语言:javascript
复制
 "icon": false,
        "checkbox": false,
        "title": "xxxxxxxx",
        "key": "23",
        "type": "child"

这样,loadkeypath函数将获得正确的路径!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12490082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档