使用JSON配置创建Ext.data.Model

时间:2012-07-19 17:17:52

标签: json extjs4

在我们正在开发的应用程序中,我们使用dinamically生成的配置(JSON对象)在服务器端创建所有JSON。我们将它用于商店(以及其他东西,如GUI),以及其数据字段的动态生成列表。

使用这样的JSON:

{
"proxy": {
    "type": "rest",
    "url": "/feature/163",
    "timeout": 600000
},
"baseParams": {
    "node": "163"
},
"fields": [{"name": "id", "type": "int" },
    {"name": "iconCls", "type": "auto"},
    {"name": "text","type": "string"
    },{ "name": "name", "type": "auto"}
    ],
"xtype": "jsonstore",
"autoLoad": true,
"autoDestroy": true
}, ...

Ext将轻轻地创建一个“隐式模型”,我可以使用它,将其加载到表单上,保存,删除它等等。

我想要的是通过JSON配置指定字段,而不是模型本身。这可能吗?

类似的东西:

{
model: {
       name: 'MiClass',
       extends: 'Ext.data.Model',
       "proxy": {
    "type": "rest",
    "url": "/feature/163",
    "timeout": 600000},
        etc... }
"autoLoad": true,
"autoDestroy": true
}, ...

这样我就可以从服务器创建一个完整的JSON,而无需在客户端使用JS语句粘贴东西。

致以最诚挚的问候,

2 个答案:

答案 0 :(得分:1)

我不明白为什么不。创建模型类的语法类似于商店和组件的语法:

Ext.define('MyApp.model.MyClass', {
    extend:'Ext.data.Model',
    fields:[..]
});

所以,如果你把它拆开,你可以致电Ext.define(className,config); 其中className是一个字符串,config是一个JSON对象,两者都是在服务器上生成的。

答案 1 :(得分:0)

没有办法实现我想要的。 唯一可行的方法是定义Ext.data.Store的字段,并使用字段配置生成隐式模型。