从外部的Ext.data.Store获取JSON数组?

时间:2011-11-17 09:19:59

标签: grid extjs

如何从函数外部的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。

3 个答案:

答案 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);