Ext store中使用回調函數

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(轉)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章