2012-07-19 21 views
0

在我們正在開發的應用程序中,我們使用dinamically生成的配置(JSON對象)在服務器端創建所有JSON。我們將它用於商店(以及其他東西,如GUI),以及其數據字段的生成列表。使用JSON配置創建Ext.data.Model

有了這樣的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 
}, ... 

分機輕輕將創建一個「隱式模型」與我將能夠一起工作,加載它的形式,將其保存,刪除等。

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

喜歡的東西:

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

這樣,我就可以從服務器上創建一個整體JSON,而不使用在客戶端的JS語句膠料。

最好的問候,

+0

請記住,如果我問這樣做的好處是什麼? – 2012-07-20 04:54:40

+0

是的,我們有一個有3500個班的客戶端應用程序。幾乎1000個是各種模型。應用程序中99%的GUI是通過元模型創建的,我們希望通過Ext實現。 – emaringolo 2012-07-23 13:50:40

回答

1

我不明白爲什麼不。如果你把這個分開,你可以打電話Ext.define(className,config); 其中className是字符串,config是一個JSON對象,兩者都產生於

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

所以:創建一個模型類的語法類似於專賣店和組件服務器。

+0

我只是說**模型的定義** JSON,沒有eval的,也沒有像define()或create() – emaringolo 2012-07-23 13:52:25

+0

我不遵循的語句。 – dbrin 2012-07-23 16:23:56

+0

定義商店時,您可以指定它管理的模型的「名稱」。但在此之前,您必須通過Ext.define(...)定義模型類。我想通過JSON定義模型類,而不是通過評估任何東西。 對於某些東西,您可以通過JSON對象{...}定義商店,使用StoreManager或者您可以在其他地方定義它,然後將實例傳遞給它。 – emaringolo 2012-07-23 20:25:46

0

沒有辦法實現我想要的。 要做到這一點,唯一的方法是通過定義Ext.data.Store的字段,並通過使用字段配置生成隱式模型。