在 ExtJS 中从 Store 访问数据?
Posted
技术标签:
【中文标题】在 ExtJS 中从 Store 访问数据?【英文标题】:Accessing data from a Store in ExtJS? 【发布时间】:2017-02-02 12:47:20 【问题描述】:所以我有以下代码:
模型:
Ext.define('Sandbox.model.User',
extend: 'Ext.data.Model',
fields: [
name: 'Name', type: 'string' ,
name: 'Email', type: 'string' ,
name: 'TelNumber', type: 'string' ,
name: 'Role', type: 'string'
]
);
商店
Ext.define("Sandbox.store.Users",
extend : 'Ext.data.Store',
model : 'Sandbox.model.User'
);
我有以下 Application.js 将数据加载到商店:
Ext.define('Sandbox.Application',
extend: 'Ext.app.Application',
name: 'Sandbox',
stores: [
'Users'
],
launch: function ()
var userStore = Ext.getStore('Users');
userStore.add(
[
Name : 'John',
Email: 'john@gmail.com',
TelNumber : ' 0330 122 2800',
Role : 'Administrator'
,
Name : 'Sarah',
Email : 'sarah@hotmail.com',
TelNumber: ' 0330 122 2800',
Role : 'Customer'
,
Name : 'Brian',
Email : 'brian@aol.com',
TelNumber: ' 0330 122 2800',
Role : 'Supplier'
,
Name : 'Karen',
Email : 'karen@gmail.com',
TelNumber: ' 0330 122 2800',
Role : 'Administrator'
]
);
var userStore = Ext.getStore('Users');
console.log("Store size " + userStore.getCount());
console.log("Person #1: " + userStore.getAt(0).Name);
);
应用程序启动时,会记录正确的存储大小(4)。但是索引 0 处特定数据的第二个日志返回值未定义。我知道 ExtJS 是异步的,但数据是硬编码的;为什么将数据加载到存储中会有延迟?如何修复此代码,以便当我第一次在浏览器上导航到应用程序时,上述两个日志显示正确的信息?
【问题讨论】:
【参考方案1】:您不能直接访问该属性。你应该使用:
userStore.getAt(0).get("Name")
编辑:您的代码没有其他问题,问题只是语法。 “ExtJS 是异步的”是一个很大的误解,因为它只是一个 js 库,不能异步。您编码的方式可以是,而您的示例中没有。您手动将数据添加到您的商店。
【讨论】:
以上是关于在 ExtJS 中从 Store 访问数据?的主要内容,如果未能解决你的问题,请参考以下文章
Extjs中如何动态加载'Ext.tree.Panel'树当中的各个节点