修改extjs4.1的example里的tree/check-tree例子,希望可以读取指定json节点下的数据,一直不成功,求教
本帖最后由 yufulou 于 2013-01-29 14:15:40 编辑
原例子:
js:
var store = Ext.create('Ext.data.TreeStore', {
proxy: {
type: 'ajax',
url: 'check-nodes.json'
},
。。。。以下省略
json:
[{
"text": "To Do",
"cls": "folder",
"expanded": true,
"children": [{
"text": "Go jogging",
"leaf": true,
"checked": true
},{
。。。。以下省略
改为
js:
var store = Ext.create('Ext.data.TreeStore', {
proxy: {
type: 'ajax',
url: 'check-nodes.json',
reader:{
type:'json',
root:'data.record'
}
},
json:
{data:{record:[{
"text": "To Do",
"cls": "folder",
"expanded": true,
"children": [{
"text": "Go jogging",
"leaf": true,
"checked": true
},{
。。。。以下省略
上面的代码将会报错。
之后,我把proxy和reader的创建过程都放到外面手动创建了,都创建成功了,然后就是在创建treestore的时候,把里面的proxy属性指向我创建的proxy对象,就提示treestore创建失败了,希望找一个解决办法,因为我希望返回值能符合我规定的数据格式,以便统一错误信息
------解决方案--------------------最终发现,其实,所设置的root其实就是相当于树json的children所在的位置,可以设置root为data,但是,要把所有children都改成data,所以,在这里设置多层节点(root.record)是不可以的,而reader中的record属性代表在root下面,存在多行数据时,要找的节点名,在xml-tree里有相应例子,比如<root><record></record><record></record></root>,暂时认为record属性在这里不适用于json节点,结贴~~