0
所以我有以下代碼:從ExtJS中的商店訪問數據?
的型號:
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: '[email protected]',
TelNumber : ' 0330 122 2800',
Role : 'Administrator'
},
{
Name : 'Sarah',
Email : '[email protected]',
TelNumber: ' 0330 122 2800',
Role : 'Customer'
},
{
Name : 'Brian',
Email : '[email protected]',
TelNumber: ' 0330 122 2800',
Role : 'Supplier'
},
{
Name : 'Karen',
Email : '[email protected]',
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是異步的,但數據是硬編碼的;爲什麼會延遲將數據加載到商店?我如何修復這段代碼,以便當我第一次導航到瀏覽器上的應用程序時,上面的兩個日誌顯示正確的信息?