开发者

Specifying a root in the JSON for an EXTJS tree

I am creating a tree in ExtJS 3.4.0. I understand the JSON the component is expecting should开发者_StackOverflow中文版 be returned like this:

    [{
        id: 1,
        text: 'Brian',
        leaf: true,
        checked: false
    }]

but the JSON that i am getting retrurned to me has a root node like this:

    {"message": 
        {"nodes":
            [{
                "text":"Brian",
                "id":"1",
                "leaf":true,
                "checked":false
            }]
         }
     }

I don't see a way to specify in my configuration where in the JSON, the actual tree data is. Is this even possible? I see a "root" paramater, but that is different. Is there a way to specify where in the incoming JSON to "start" from.

Oh and I don't have control over the incoming JSON or obviously I would just change the JSON. :-)

Thanks


I think you could do something like along these lines (from looking at the ext docs):

var treePanel = {
  xtype: 'treepanel',
  loader: new Ext.tree.TreeLoader(),
  root: new Ext.tree.TreeNode({
    expanded: true,
    children: myJsonObject.message.nodes
  })
}


The is a 'root' option in the reader for your Store's Proxy that you can use.

proxy: {
    reader: {
        type  : 'json',
        root  : 'nodes'
    },
    // Other configs
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜