2013-01-31 38 views
2

我正在使用extjs sencha存儲來存儲數據。我向Web服務進行代理調用以獲取數據。我使用store.load()函數刷新數據。進程extjs在接收數據後存儲代理數據

我正在尋找編輯它被給予網格之前收到的數據。

我知道加載事件,但是這個函數在加載完成並且數據填充了當前數據之後執行。

listeners : { 
     'load' : function(store,records, options) { 
    } 
}, 

我期待看到如何在Web應用程序分配給商店之前編輯從Web服務返回的數據。基本上從我的webservice返回的數據格式與我們給extjs datagrid的格式不同。所以,我們在給電網之前要做一個數據操作。希望我們能做到這一點。

Thx

+0

可以覆蓋其有相關的創建,讀取,更新Ext.data.Proxy,刪除方法,以便覆蓋讀,你會得到的面前,你會得到的信息結果放入您的商店。 – darren102

+0

我試過這個功能,但是現在我看到顯示給網格的數據是空的 – user1402539

+0

read:function(operation,callback,scope){var thisProxy = this; var cityInfo = [ \t {name:'New Jersey',location:'East Coast'}, \t {name:'California',location:'West Coast'}]; operation.resultSet = new Ext.data.ResultSet({records:cityInfo, total:cityInfo.length }); (typeof callback ==「function」){ callback.call(scope || thisProxy,operation); } \t} – user1402539

回答

3

模型映射可以幫助您做到這一點。還有一個轉換功能可以提供。下面是從docs的例子:

Ext.define('User', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     { 
      name: 'firstName', 
      convert: function(value, record) { 
       var fullName = record.get('name'), 
        splits = fullName.split(" "), 
        firstName = splits[0]; 

       return firstName; 
      } 
     }, 
     'name', 'email', 
     {name: 'age', type: 'int'}, 
     {name: 'gender', type: 'string', defaultValue: 'Unknown'} 
    ] 
}); 
+0

Thanks..Can這可以用來將一個JSON完全轉換爲另一個?理想情況下,我期待將傳入的webservice數據轉換爲新的json數據。我們可以通過這種方法做到這一點? – user1402539

+0

理想情況下,您可以在服務器端執行此操作。 – dbrin

+0

ya ..所以,web服務是一個通用的web服務,也被給予外部public.since,因爲我們正在建立一個層的頂部,我們從javascript端做.. – user1402539