Javascript 从ExtJS中的存储访问数据?
因此,我有以下代码: 模型:Javascript 从ExtJS中的存储访问数据?,javascript,model-view-controller,extjs,model,store,Javascript,Model View Controller,Extjs,Model,Store,因此,我有以下代码: 模型: Ext.define('Sandbox.model.User', { extend: 'Ext.data.Model', fields: [ { name: 'Name', type: 'string' }, { name: 'Email', type: 'string' }, { name: 'TelNumber', type: 'string' }, { name: 'Role',
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是异步的,但是数据是硬编码的;为什么将数据加载到存储中会有延迟?如何修复此代码,以便在首次在浏览器上导航到应用程序时,上述两个日志显示正确的信息?您无法直接访问该属性。你应使用:
userStore.getAt(0).get("Name")
编辑:代码中没有其他错误,问题只是语法。“ExtJS是异步的”是一个很大的误解,因为它只是一个js库,不能是异步的。您编写代码的方式可以是这样的,但在您的示例中却没有。您可以手动将数据添加到存储。您无法直接访问该属性。你应使用:
userStore.getAt(0).get("Name")
编辑:代码中没有其他错误,问题只是语法。“ExtJS是异步的”是一个很大的误解,因为它只是一个js库,不能是异步的。您编写代码的方式可以是这样的,但在您的示例中却没有。您可以手动将数据添加到存储中