【发布时间】: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 是异步的,但数据是硬编码的;为什么将数据加载到存储中会有延迟?如何修复此代码,以便当我第一次在浏览器上导航到应用程序时,上述两个日志显示正确的信息?
【问题讨论】:
标签: javascript model-view-controller extjs model store