如何使用 ExtJS 访问从 JsonStore 获取的值?

Posted

技术标签:

【中文标题】如何使用 ExtJS 访问从 JsonStore 获取的值?【英文标题】:How to access a value fetched from a JsonStore with ExtJS? 【发布时间】:2013-05-15 08:07:36 【问题描述】:

在下面的 JS 代码中,我试图从 url 读取 json 数据:

// Create JsonStore
var storeED = new Ext.data.JsonStore(                    
            url: './wfServlet?workd=' + workd
                + '&type=detail' + '&status=' + status +'&userName='+userName,
            root: 'root',
            fields: [name:'ERROR_DESC']
            );

然后我想从字段ERROR_DESC中获取值。

Ext.getCmp('errorMessage').setValue(storeED.ERROR_DESC);// want  to read value

上面的代码对我不起作用。 我错过了什么?

【问题讨论】:

存储中可能有多条记录,那么你要取哪个值 你检查过你的回复是什么吗? 也使用了 extjs 版本 您使用storeED.get(0).get('ERROR_DESC') 获得第一个ERROR_DESC 可能会在商店为空时引发错误 【参考方案1】:

商店没有价值。 Stores 是 Ext.data.Model 实例的缓存,它们保存的值映射到为应用于 Store 的模型定义的字段。

要完成您想要做的事情,您需要访问商店内的模型实例,该实例包含您想要的记录数据,例如storeEd.getAt(0),假设您只有一个模型实例商店的缓存。

如果这是唯一的字段,并且您只希望一个实例存在于该商店中,那么甚至根本不打扰商店可能会更好。您可以向模型本身添加代理,或者只使用从常规Ext.Ajax.request 返回的值。如果您不打算在此特定用途之外使用此值,则可能不需要商店。

【讨论】:

以上是关于如何使用 ExtJS 访问从 JsonStore 获取的值?的主要内容,如果未能解决你的问题,请参考以下文章

我如何将 loadData 函数作为 Ext.data.JsonStore ExtJS3.0.0 的一部分?

ExtJS 4.1 - 改变 JsonStore 的值

使用 extjs 3.4 panel + dataview + jsonstore 检索数据

ExtJS JsonStore 未填充

EXTJS JsonStore 不加载

EXTJS 在异步获取后将 JSONStore 加载到网格