Ext store中使用回调函数

时间:2021-09-27 23:44:19

Ajax的异步请求有时候会带来一些问题,如在Ext做的页面中,需要加载一个JsonStore数据集,在紧跟着的代码中可能就会对数据集进行访问的操作,由于异步请求很可能导致数据未加载完就开始访问,结果可能会不是想要的结果。

这里load方法中提供了一个callback回调函数,可以解决延迟加载的问题,我们需要处理的一部分代码可以放在callback函数中处理,这样就解决了异步请求带来的问题。如:

 
var collectIndex_ds = new Ext.data.JsonStore({
    url: '',
    root: 'collectIndexs',
    id: 'id',
    fields:[
        {name:'id'},
        {name:'userViewId'},
        {name:'timeType'},
        {name:'measureUnitId'}
    ]});


 

 //使用回调方法,可以解决延迟加载的问题;这里使用回调时为了把userViewId项为空的加上默认值1

collectIndex_ds.load({
    callback :function(r,options,success){
        if(success){
            for(var i=0;i<r.length;i++){
                var record = r[i];
                var v = record.data.userViewId;
                if(v==null || v==""){
                    record.set("userViewId",1);
                }
            }
        }
    }
});
回调函数是在Store的load事件执行后才执行的,参数r表示返回的记录集,opts表示调用load方法时的配置参数对象,success表示数据加载是否成功


参考:

Ext Store详解

在Ext的JsonStore的load方法中使用回调callback(转)