【问题标题】:extjs retrieve child nodes in treestoreextjs 检索树存储中的子节点
【发布时间】:2013-05-21 12:28:47
【问题描述】:

我正在加载一个树存储,获取根节点,然后尝试遍历子节点。根据我的观察,在我看来,树已加载到商店中,我能够获得根,当我在控制台中展开根时,我能够看到孩子,但是当我尝试从ExtJS 我得到错误。

任何帮助将不胜感激。非常感谢您。

var ts = this.getStore('QaireTreeStore'); console.log("--- ts:"); 控制台.log(ts); var p = ts.getProxy(); console.log("--- p:"); 控制台.log(p); p.extraParams = {}; p.setExtraParam('prgmCode','arg1'); p.setExtraParam('qaireCode','arg2'); ts.removeAll(); ts.load(); var rn = ts.getRootNode(); console.log("--- rn:"); 控制台.log(rn); console.log("--- isRoot"); 控制台.log(rn.isRoot()); rn.eachChild(函数(n){ console.log('-- n:'); 控制台.log(n); }); console.log("--- firstChild:"); console.log(rn.firstChild); console.log("--- childNodes:"); console.log(rn.childNodes); console.log("--- getChildAt 0:"); console.log(rn.getChildAt(0));

在“--- rn:”下,我扩展了“childNodes”和“constructor”以显示数据存在。输出显示为:

--- ts: SrvyController.js:71
    构造函数{autoLoad:false,模型:函数,storeId:“QaireTreeStore”,代理:构造函数,字段:数组[1]…}
     SrvyController.js:72
    --- p: SrvyController.js:76
    构造函数{类型:“ajax”,api:对象,阅读器:构造函数,模型:函数,hasListeners:HasListeners…}
     SrvyController.js:77
    --- rn:SrvyController.js:89
    构造函数 {phantom: false, internalId: "ext-record-1", raw: Object, data: Object, modified: Object…}
    子节点:数组[1]
    0:构造函数
    子节点:数组 [9]
    数据:对象
    脏:假
    编辑:假
    事件:对象
    firstChild:构造函数
    hasListeners: HasListeners
    id:“IHA.model.QaireModel-48”
    内部标识:48
    lastChild:构造函数
    修改:对象
    下一个兄弟姐妹:空
    parentNode:构造函数
    幻象:假
    上一个兄弟姐妹:空
    原始:对象
    商店:数组[0]
    proto:模板类
    长度:1
    原型:数组[0]
    数据:对象
    脏:假
    编辑:假
    事件:对象
    firstChild:构造函数
    hasListeners: HasListeners
    id:“IHA.model.QaireModel-ext-record-1”
    internalId:“ext-record-1”
    lastChild:构造函数
    修改:对象
    下一个兄弟姐妹:空
    父节点:空
    幻象:假
    上一个兄弟姐妹:空
    原始:对象
    商店:数组[0]
    proto:模板类
     SrvyController.js:90
    --- isRoot SrvyController.js:93
    真正的 SrvyController.js:94
    --- firstChild: SrvyController.js:101
    空 SrvyController.js:102
    --- 子节点:SrvyController.js:105
    [] SrvController.js:106
    --- getChildAt 0: SrvyController.js:108
    不明确的

【问题讨论】:

    标签: extjs tree nodes


    【解决方案1】:

    不确定这是否能解决您的问题,但由于您使用的是 AJAX 代理,因此您应该在商店的侦听器中进行处理。

    ts.on('load', function(store, records) {
       var rn = ts.getRootNode();
       //do your processing here
    });
    

    【讨论】:

    • 非常感谢,这正是我所需要的。当我使用 ExtJS MVC 时,我确实在控制器中使用了这个变体:this.getSrvyTreeStoreStore().addListener('load',this.processTree, this);
    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多