extjs树木与代理 [英] extjs treestore with proxy

查看:140
本文介绍了extjs树木与代理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个MVC extjs应用程序。我有一个带有商店的treepanel,它正在从php源加载数据。
我得到以下json格式的响应:

  [
{
:Home,
leaf:true,
dbName:NULL,
children:[]
},
{
text:Moje Firma sro,
leaf:false,
expanded:false,
children:[
{
text:Vydane,
leaf:true,
dbName:demo
},
{
text:Prijate ,
leaf:true,
dbName:demo
}
]
},
{
:JáŽivnostn​​ík,
leaf:false,
expanded:false,
children:[
{
text V


$ bleaf:
dbName:demo_de
},
{
text:Prijate,
leaf:true,
dbName:demo_de
}
]
},
{
text:Neziskováorganizace,
leaf:false,
expanded:false,
children:[
{
text:Vydane,
leaf:true,
dbName:demo_neziskova
},
{
text:Prijate,
leaf:true,
dbName:demo_neziskova
}
]
},
{
text:Příspěvkováorganizace,
leaf:false,
expanded:false,
children:[
{
text:Vydane,
leaf:true,
dbName:demo_prispevkovka
},
{
text Prijate,
leaf:true,
dbName:demo_prispevkovka
}
]
},
{
文本:Moje Firma SK sro,
leaf:false,
expanded:false,
children:[
{
text:Vydane,
leaf:true,
dbName:demo_sk
},
{
:Prijate,
leaf:true,
dbName:demo_sk
}
]
}
]
我的商店:

  Ext.define('Statistics.store.Menu',{
extends:'Ext.data.TreeStore',
model:'Menu',
autoLoad:true,
autoSync:true,

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


});

和型号:

  Ext.define('Statistics.model.Menu',{
extends:'Ext.data.Model',

fields:[
{name :'text',type:'string'},
{name:'leaf',type:'boolean'},
{name:'expanded',type:'boolean',defaultValue:false },
{name:'dbName',type:'string',defaultValue:'NULL'}
],

});

当数据保存在.json文件中时,此配置工作正常。但是,当从php源加载时,id不起作用。



感谢任何答案。

解决方案

服务器响应必须如下所示:

  {
success: true,
children://这里是项目数组
}


I'm creating a MVC extjs application. I've got a treepanel with a store, which is loading the data from a php source. I get the following json-formatted response:

[
{
    "text": "Home",
    "leaf": true,
    "dbName": "NULL",
    "children": []
},
{
    "text": "Moje Firma s.r.o.",
    "leaf": false,
    "expanded": false,
    "children": [
        {
            "text": "Vydane",
            "leaf": true,
            "dbName": "demo"
        },
        {
            "text": "Prijate",
            "leaf": true,
            "dbName": "demo"
        }
    ]
},
{
    "text": "Já Živnostník",
    "leaf": false,
    "expanded": false,
    "children": [
        {
            "text": "Vydane",
            "leaf": true,
            "dbName": "demo_de"
        },
        {
            "text": "Prijate",
            "leaf": true,
            "dbName": "demo_de"
        }
    ]
},
{
    "text": "Nezisková organizace",
    "leaf": false,
    "expanded": false,
    "children": [
        {
            "text": "Vydane",
            "leaf": true,
            "dbName": "demo_neziskova"
        },
        {
            "text": "Prijate",
            "leaf": true,
            "dbName": "demo_neziskova"
        }
    ]
},
{
    "text": "Příspěvková organizace",
    "leaf": false,
    "expanded": false,
    "children": [
        {
            "text": "Vydane",
            "leaf": true,
            "dbName": "demo_prispevkovka"
        },
        {
            "text": "Prijate",
            "leaf": true,
            "dbName": "demo_prispevkovka"
        }
    ]
},
{
    "text": "Moje Firma SK s.r.o.",
    "leaf": false,
    "expanded": false,
    "children": [
        {
            "text": "Vydane",
            "leaf": true,
            "dbName": "demo_sk"
        },
        {
            "text": "Prijate",
            "leaf": true,
            "dbName": "demo_sk"
        }
    ]
}
]

My store:

Ext.define('Statistics.store.Menu', {
extend: 'Ext.data.TreeStore',
model: 'Menu',
autoLoad: true,
autoSync: true,

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


});

And model:

Ext.define('Statistics.model.Menu', {
extend: 'Ext.data.Model',

fields: [
    {name: 'text', type: 'string'},
    {name: 'leaf', type: 'boolean'},
    {name: 'expanded', type: 'boolean', defaultValue: false},
    {name: 'dbName', type: 'string', defaultValue: 'NULL'}
],

});

This configuration works, when the data are saved in a .json file. But id doesn't work, when they are loaded from a php source.

Thanks for any answer.

解决方案

The server response must look like this:

{
   success: true,
   children: // here is the array of items
}

这篇关于extjs树木与代理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆