2014-08-29 86 views
0

我最近通過繼承了一個用3.4編寫的web應用程序來深入瞭解ExtJS。我已經成功地創建了一個附加到網格的商店,並且沒有任何問題,並且已經能夠調用一個PanelForm,並將數據從調用加載到一個php頁面。ExtJS json商店沒有填充

我定義的另一個JSON店,當我調用它的加載程序,我想知道我錯過了什麼沒有得到填充。

商店的定義是以下:

var ImgStore = new Ext.data.JsonStore({ 
totalProperty: 'total' 
,root: 'data' 
,url : 'json/getProductImage/'   
,fields : [{ 
    name : 'img' 
},{ 
    name : 'extn' 
}] 
}); 

我的代碼加載數據是:

ImgStore.load({callback: function() {}    
     ,params: {'ProductGUID': x} 
    }); 

在URL後面的代碼是精細和以下螢火蟲響應:

{"success":true,"data":{"img":"iVBORw0KG...ggg==","extn":"png"}} 

我能不明白是爲什麼響應回來,但商店不填充。我肯定錯過了什麼;我看不出有什麼...

是否已經存儲被綁定到另一個對象?我想要做的是回讀base64編碼的字符串,然後在屏幕上顯示圖像(在面板上,FormPanel或Container上;確實不是最好的方法)

任何建議都會收到。

回答

0

您的店鋪需要一個模型。該模型需要反映您的JSON提要中返回的屬性。只有這樣數據纔會顯示在您的商店中。

+0

沒有必要對模型的3.4 http://docs.sencha.com/extjs/3.4.0 /#!/api/Ext.data.JsonStore-cfg-reader – 2014-08-31 14:41:25

+0

根據以上評論 - 我不認爲如果沒有明確定義,如果在飛行中創建就不需要。 – 2014-08-31 15:50:05

0

一切都看起來不錯,除了網址配置不ü缺少文件的名稱? 'json/getProductImage/myfile.json'

你是如何確認存儲沒有被綁定到一個網格裝?因爲如果這樣,商店可以被加載但不配置網格正確可能使U覺得店裏沒有加載,嘗試console.log(store.getTotalCount())

+0

否 - 這是一個包含index.php文件的目錄。 Index.php被設置爲默認文檔,因此在進入文件夾時讀取並觸發。我還有25個其他的例子沒有問題,所以我不相信這是事實。關於驗證 - 我曾使用console.log(ImgStore)返回一個空對象。對另一個填充了數據的JsonStore的調用返回可以被瀏覽的對象。我沒有將它綁定到網格上;我的觀點是,創建一個綁定到網格的人正在工作,但這種方法還不完全相同。 – 2014-08-31 15:51:45

+0

考慮到js是異步的,所以如果你做了store.load(),並且在那之後console.log()存儲可能仍然在加載 – 2014-09-01 01:37:55

+0

,所以到console.log時它仍然是空的,這將是一個好的做法將文件的名稱放在url中。將ImgStore.getTotalCount()放入回調函數中。 – 2014-09-01 01:49:00