2013-02-07 83 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'));