如何从函数外部的Ext.data.Store获取JSON数组? 代码:
var store = new Ext.data.Store({
model: 'nested' + type,
proxy: {
type: 'ajax',
url: '/Grid/GetDetailed?InvoiceId=' + $(row).attr('id'),
reader: {
type: 'json',
root: 'items',
totalProperty: 'totalCount'
}
}
});
store.load();
我想使用这样的东西:
store.getAt(0);
但它未定义。 有人说它是异步的ajax的beacaouse。
答案 0 :(得分:6)
如果在调用store.load()之后立即使用store.getAt(0),那么问题是加载是异步的,所以你应该使用加载的回调方法来解决这个问题。
store.load({
scope : this,
callback: function(records, operation, success) {
//here the store has been loaded so you can use what functions you like
store.getAt(0);
}
});
答案 1 :(得分:0)
在创建商店时使用Ext.create代替new
关键字,并为商店定义storeId。然后,您可以使用Ext.getStore()方法检索商店。
答案 2 :(得分:0)
您还可以通过执行以下操作使其正常工作:
//This function will be called only after the store has been loaded successfully.
store.on('load',function(this, records, successful, eOpts){
store.getAt(0);
}, this);