- 一個分頁的邏輯業務。
//把我們拿到的數據組織好,發送ajax拿到符合用戶選項的商品列表
ajax_list(data);
function ajax_list(data,page_n){
$.ajax({
async: false, //表示請求是否異步處理
//請求方式
type: "get",
//請求的媒體類型
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
//請求地址
url: http + "/api/page/goods/getProducts.do",
//數據,json字符串
dataType: "json",
timeout: 5000,
headers: {
token: token,
},
data:data,
success:function(result){
console.log(result);
console.log(result.data)
//拿到符合我們用戶選項的商品數據后,渲染數據和分頁數據
var body_data = {
body_data: result.data
}
var html_body = template('real_body_', body_data);
document.getElementById('real_body').innerHTML = html_body;
//渲染我們的分頁數據
var page = Math.ceil(result.count/10);
if(!page_n){
$('#pagination').empty();
new pagination({
pagination: $('#pagination'),
maxPage: 5, //最大頁碼數,支持奇數,左右對稱
startPage: 1, //默認第一頁
currentPage: 1, //當前頁碼
totalItemCount: page, //項目總數,大於0,顯示頁碼總數
totalPageCount: page, //總頁數
callback: function (page) {
console.log(page)
console.log(data);
data.page = page;
var page_n = 1;
ajax_list(data,page_n);
}
});
}
},
erorr:function(e){
console.log(e);
}
})
}
- 備注: 這里的page_n 是解決問題的關鍵,雖然我們引用的分頁插件,由於每次ajax后,都會重新創建一個分頁插件,不符合分頁業務需要,於是我們傳入page_n的值來判斷是否是分頁插件里加載的,如果是就傳入分頁參數加載數據。如果不是就不傳入分頁參數加載數據。