Extjs:我可以通过代理设置树存储的根节点吗?

时间:2015-06-22 14:13:20

标签: javascript extjs

我希望我的json像:

MyRoot
|-Children1
|-Children2

所以树就像:

JQ.exe -r -s "map(.\"results\" | map({\"ID\": (((.\"body\"?.\"party\"?.\"xrefs\"?.\"xref\"//[] | map(select(ID))[]?.\"id\"?))//null), \"Name\": (((.\"body\"?.\"party\"?.\"general-info\"?.\"full-name\"?))//null)} | [(.\"ID\"//\"\"|tostring), (.\"Name\"//\"\"|tostring)])) | add[] | join(\"~\")" "\C:\InputFile.txt" >"\C:\OutputFile.txt"

没有在树存储中设置root,这意味着我可以从服务器设置根节点的名称, 那可能吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以使用Ext.data.TreeStore的metachange event来完成。

var store = Ext.create('Ext.data.TreeStore', {

    // Your store settings

    proxy: {
        type: 'ajax',
        url : 'yourData.json',
        reader: {
            type: 'json',
            root: 'data'
        }
    }

    listeners: {
        metachange: function (store, meta) {
            store.setRootNode(meta.root);
        }
    }
});

在这种情况下,您的JSON应如下所示:

{
    metaData: {
        root: {
            text: 'My Root',
            expanded: true,
            "data": []
        }
    },
    data: [
        // Your data
    ]
}

事实上,使用此事件,您可以从服务器发送商店,treepanel等的任何设置。