获得客户端存储的最短最快方法是什么,它使用某种回调/侦听器来返回数据(而不是来自服务器)。说明:
Ext.define('aaa.store.ContactList', {
extend: 'Ext.data.Store',
requires: 'aaa.model.ContactList',
model: 'aaa.model.ContactList',
autoLoad: true,
fields:['firstLetter', 'userId', 'userName', 'h', 'w', 'm', 'v', 'custom'],
groupField: 'firstLetter',
sorters: ['firstLetter', 'userId'],
// Overriding the model's default proxy
proxy: {
type: 'direct',
directFn: 'getPhoneBookEntries', <<--- don't want this to be a server method, but a client side js method...
reader: {
type: 'json',
rootProperty: ''
}
}
});
我有一个网格使用这个商店来显示联系人列表。问题是“直接”和“直接”。和其他方法依赖于商店从服务器读取的事实。但是我有我的机制从服务器上读取,我只是想要提供#39;商店手动。
可以这样做吗?
使用一些新代码更新问题:
型号:
Ext.define('WebPhone.model.ContactList', {
extend: 'Ext.data.Model',
fields: [
{ name: 'firstLetter', type: 'string' },
{ name: 'userId', type: 'string' },
{ name: 'userName', type: 'string' },
{ name: 'h', type: 'string' },
{ name: 'w', type: 'string' },
{ name: 'm', type: 'string' },
{ name: 'v', type: 'string' },
{ name: 'custom', type: 'string' }
]
});
商品
Ext.define('WebPhone.store.ContactList', {
extend: 'Ext.data.Store',
requires: 'WebPhone.model.ContactList',
model: 'WebPhone.model.ContactList',
autoLoad: true,
fields:['firstLetter', 'userId', 'userName', 'h', 'w', 'm', 'v', 'custom'],
groupField: 'firstLetter',
sorters: ['firstLetter', 'userId'],
// Overriding the model's default proxy
// proxy: {
// type: 'memory',
// reader: {
// type: 'json',
// rootProperty: 'root'
// }
// }
});
此帖子的gride定义太长,但它适用于预加载的数据
数据加载代码:
var store = Ext.getStore( "ContactList" );
//var array_values = new Array();
//for( var key in phoneBook )
//array_values.push( phoneBook[key] );
//store.loadData( array_values );
store.loadData( [{firstLetter:'a', userId:'ali', userName:'ali', h:'04040', w:'04040', m:'04040', v:'04040', custom:'04040'}] );
我尝试了loadRawData和loadData但没有成功...... 尝试使用代理(ajax / json / memory / array ...你可以命名)而不使用。
没有成功。我在这里缺少什么?
答案 0 :(得分:0)
最简单的方法是在没有代理的情况下配置商店,并在准备好数据后进行配置:
答案 1 :(得分:0)
我终于设法修复了这个问题......
无论如何..代码:
var contactListView = Ext.ComponentQuery.query('contact-list-view')[0];
var store = contactListView.getStore();
var array_values = new Array();
for( var key in phoneBook )
array_values.push( phoneBook[key] );
store.loadRawData( array_values );