2013-02-07 87 views
2

我有一個商店,從zend服務器獲取數據。我想獲取商店記錄以在我的表單上進行一些自定義設置。爲了從商店獲取數據,我使用下面的代碼。如何從商店獲取值在extjs4

var index = Ext.StoreMgr.lookup('product.AttributeComboBox').find('abbr',4); 
var reco = Ext.StoreMgr.lookup('product.AttributeComboBox').getAt(index); 

上面的代碼片段不返回任何記錄。請讓我知道我錯在哪裏。

+1

是你的店裝在這次查找的時間是?另外,就像提示一樣,你可以使用findRecord()來完成同樣的事情,但只需少一行代碼。 – existdissolve

+0

您確定您的商店數據正確加載?如果您在商店上運行count(),它是否表示有記錄?此外,你可以做console.log(存儲),並檢查螢火蟲,如果有任何數據加載在它確定。 – Rocket04

+0

請將請求的響應正文發佈到zend服務器,以便我們可以在商店中看到數據。 –

回答

1
  1. 在調試器檢查商店存在

    Ext.StoreMgr.lookup( 'product.AttributeComboBox')

  2. 檢查多少條記錄在店裏

    Ext.StoreMgr .lookup('product.AttributeComboBox')。data.items

  3. 檢查記錄是否已正確解析

什麼從服務器備案

Ext.StoreMgr.lookup('product.AttributeComboBox').data.items[0].raw 

來到它是如何被轉化爲

Ext.StoreMgr.lookup('product.AttributeComboBox').data.items[0].data 
0

你能告訴我們更多的代碼記錄?

到目前爲止,似乎沒問題,但您必須檢查商店是否已創建,以及是否具有所有記錄,就像RichH所說。

要檢查存儲庫中存在,我會做

var productStore = Ext.getStore('product.AttributeComboBox'); 
console.log(productStore); 

要檢查商店被裝載

console.log(productStore.getCount()); 

來查找記錄

console.log(productStore.findRecord('abbr','4'));