2012-11-20 30 views
2

我有商店我想從數據庫初始化,但我找不到Ext.data.Store的標準初始化方法。我發現了StoreManager組件的幾個例子,但我認爲這不是我想要的。我有一個適用於我的應用程序的MVC結構,我想保留它,我只想用我定義的方法初始化我的商店的數據字段。有人可以解釋如何做?在Extjs中初始化商店的數據

回答

1

我要麼明白你錯了,要麼你的問題很簡單。您可以使用這種模型配置商店。就這樣。你可能只是選擇了一個適合你需求的提供者(讀者/寫者)。

// Set up a model to use in our Store 
Ext.define('User', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name: 'firstName', type: 'string'}, 
     {name: 'lastName', type: 'string'}, 
     {name: 'age',  type: 'int'}, 
     {name: 'eyeColor', type: 'string'} 
    ] 
}); 

Ext.define('YourMVCNameSpace.data.UserStore', { 
    extend: 'Ext.data.Store', 

    constructor: function (config) { 
     config = Ext.Object.merge({}, config); 
     var me = this; 
     // do what you need with the given config object (even deletes) before passing it to the parent contructor 
     me.callParent([config]); 
     // use me forth on cause the config object is now fully applied 
    }, 
    model: 'User', 
    proxy: { 
     type: 'ajax', 
     url: '/users.json', 
     reader: { 
      type: 'json', 
      root: 'users' 
     } 
    }, 
    autoLoad: true 
}); 

注意,讀者會想到一個JSON結果是這樣的:

{"total": 55, "users":["...modeldata.."]} 

,並在控制器內指的是URL像

http://localhost/YourAppDomain//users.json 

廣場店爲 'User'通過調用getUserStore()或使用Ext.StoreMgr.lookup('User')直接從Ext.StoreMgr中存儲數組並檢索它;

請注意,按照慣例,控制器(MVC)將覆蓋您在商店中設置的任何storeId並僅使用該名稱。

+0

@Peter我修復了一些錯誤 – sra

+0

我想我幾乎可以得到它,但你能解釋一下配置參數究竟是什麼以及爲什麼構造函數需要它嗎? – Peter

+0

@Peter這是爲了克隆配置,以便您不要修改原始配置對象。商店不是組件,因此有點不同。這是一個很好的做法,但大多數時候,即使沒有任何構造函數,你也不會有任何問題。 – sra