【问题标题】:How to get values from the store in extjs4如何从 extjs4 中的商店获取值
【发布时间】:2013-01-22 23:03:18
【问题描述】:

我有一个从 zend 服务器获取数据的商店。我想获取商店记录以对我的表单进行一些自定义。为了从商店获取数据,我使用以下代码。

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

sn-p 以上不返回任何记录。请让我知道我哪里错了。

【问题讨论】:

  • 进行此查找时您的商店是否已加载?另外,作为提示,您可以使用 findRecord() 来完成同样的事情,但代码行数更少。
  • 您确定您的商店数据已正确加载吗?如果你在 store 上运行 count() ,是否表明有记录?此外,您可以执行 console.log(store) 并检查 firebug 是否已加载任何数据来确定。
  • 请将请求的响应正文发布到 zend 服务器,以便我们查看存储中的数据。

标签: javascript extjs extjs4 extjs-mvc


【解决方案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

【讨论】:

    【解决方案2】:

    你能告诉我们更多的代码吗?

    到目前为止,似乎还可以,但您必须检查商店是否已创建以及是否有所有记录,就像 RichH 所说的那样。

    要检查商店是否存在,我会这样做

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

    检查商店是否加载

    console.log(productStore.getCount());
    

    查找记录

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

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 2015-05-18
      • 2014-04-16
      • 1970-01-01
      • 2020-08-18
      • 2011-10-18
      • 2013-04-20
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多