1. 程式人生 > >[專案中學習]---avalon分頁外掛

[專案中學習]---avalon分頁外掛

    分頁外掛和表格的使用很相似,都是給avalon封裝好的外掛賦值,然後事件驅動就可以了。     我遇到的問題是,後臺介面給我返回的是一個無分頁的list集合,但是需求要求是分頁顯示。就類似淘寶中的檢視訂單對應的商品詳情一樣:     那麼這就用到了分頁的外掛,其實如果仔細看的話,就相當於把我常用的表格加分頁的組合中,表格單獨拿出來,分頁單獨拿出來。 在jsp頁面上寫這麼一句:
<div class="text-right" ms-widget="pager,cgpager,$cgPagerOpts"></div>
然後在查詢List的js方法上面加上對這個分頁外掛的控制,讓list的總條數等於分頁的總條數,讓當前頁等與分頁的當前頁:
pagerVM = avalon.vmodels.cgpager;
        if(pagerVM){
            data.limit = pagerVM.perPagers;
            data.page = pagerVM.currentPage;
        }
//dataResult是查詢到的資料
pagerVM.totalItems = dataResult.totalCount;
 pagerVM.curentPage = dataResult.page;


return avalon.controller(function($ctrl) {
 
       
        $ctrl.$onRendered = function(params) {
            commentGoodsDetailController = avalon.define("commentGoodsDetailController", function(vm) {
                    vm.$cgPagerOpts = {
                        onJump : function(e, pagerVM) {
                            
                            // ,pagerVM為要頁
                            showList(data); // 重新載入資料
                        },
                        canChangePageSize : true,
                        perPages : 5, // 預設每頁條數
                        options : [10, 20, 30, 50 ],
                        showJumper : true, 
                        dropdown : {
                            onChange : function(
                                    newValue,
                                    oldValue,
                                    vmodel) {
                                // 改變每頁條數時觸發
                                avalon.vmodels.cgpager.pager.perPages = newValue;// 重置每頁條數
                                showList(data); // 重新載入資料
                            }
                        }
                    }

            });   
            avalon.scan();
            setTimeout(function(){
                showList();//查詢資料的方法
 
            },300)
        }
       
        $ctrl.$onEnter = function() {
 
        }
          
        $ctrl.$onBeforeUnload = function() {
            delete avalon.vmodels['commentGoodsDetailController'];
        }
            
        $ctrl.$vmodels = []
    });
 
}


然後再在jsp頁面用ms-repeat來迴圈顯示查詢出的list中的資料就可以了。 最後推薦一個網站,裡面有好多類似ms-repeat這樣應用在頁面的簡單的函式以及使用例子: