0

我正在加载一个树存储,获取根节点,然后尝试遍历子节点。根据我的观察,在我看来,树已加载到商店中,我能够获得根,当我在控制台中展开根时,我能够看到孩子,但是当我尝试从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]
    原型:模板类
    长度:1
    原型:数组[0]
    数据:对象
    脏:假
    编辑:假
    事件:对象
    firstChild:构造函数
    hasListeners: HasListeners
    id:“IHA.model.QaireModel-ext-record-1”
    internalId:“ext-record-1”
    lastChild:构造函数
    修改:对象
    下一个兄弟姐妹:空
    父节点:空
    幻象:假
    上一个兄弟姐妹:空
    原始:对象
    商店:数组[0]
    原型:模板类
     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
    不明确的

4

1 回答 1

0

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

ts.on('load', function(store, records) {
   var rn = ts.getRootNode();
   //do your processing here
});
于 2013-05-26T16:38:27.013 回答