亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

AngularJS 前臺分頁實現(xiàn)的示例代碼

 更新時間:2018年06月07日 10:23:47   作者:張喜碩  
本篇文章主要介紹了AngularJS 前臺分頁實現(xiàn)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

考評員查詢,因為整體的數(shù)據(jù)量比較小,所以我們可以將分頁放到前臺進行處理。

其實分頁的原理也很簡單,我們根據(jù)分頁選擇的頁碼數(shù)和每頁數(shù)據(jù)條數(shù)決定當前顯示的是數(shù)組中的第多少項到多少項,然后再構(gòu)造分頁的參數(shù)傳入已有的分頁指令。

// 初始化分頁參數(shù)
$scope.pageParams = {
  size: $stateParams.size,   // 每頁數(shù)據(jù)條數(shù)
  page: $stateParams.page,   // 頁碼數(shù)
  last: undefined,       // 是否首頁
  first: undefined,       // 是否尾頁
  totalPages: undefined,    // 總頁數(shù)
  totalElements: undefined,   // 總數(shù)據(jù)條數(shù)
  numberOfElements: undefined  // 當前頁有幾條數(shù)據(jù)
};

這是我們的分頁指令要的數(shù)據(jù),所以我們就是兩個任務,第一,截取當前頁應該顯示的數(shù)據(jù),第二生成參數(shù)傳給分頁指令。

這是最后實現(xiàn)的CommonService中的公共方法。

/**
 * 重新生成分頁參數(shù)與分頁數(shù)據(jù)
 * @param {每頁數(shù)據(jù)條數(shù)}  size
 * @param {頁碼數(shù)}    page
 * @param {全部數(shù)據(jù)}   data
 * @param {Function}   callback
 * callback (pageParams, currentPageData)
 * pageParams: 分頁的標準
 * currentPageData: 當前頁的數(shù)據(jù)
 */
self.reloadPageParamsAndData = function(size, page, data, callback) {
  // 校驗傳入的參數(shù)
  if (typeof size === 'undefined') {
    throw '未接收到每頁數(shù)據(jù)條數(shù)信息';
  }
  if (typeof page === 'undefined') {
    throw '未接收到分頁信息';
  }
  if (typeof data === 'undefined') {
    throw '未接收到數(shù)據(jù)信息';
  }
  // 計算總頁數(shù)和總數(shù)據(jù)條數(shù)
  var totalPages  = Math.ceil(data.length / size);
  var totalElements = data.length;
  // 計算當前頁是否為首頁 是否為尾頁
  var first = page === 0 ? true : false;
  var last = page === totalPages - 1 ? true : false;
  // 根據(jù)分頁參數(shù)計算當前頁應該顯示的數(shù)據(jù) slice數(shù)組元素分割
  var currentPageData = data.slice(0 + page * size, size + page * size);
  // 獲取當前頁總共有多少條數(shù)據(jù)
  var numberOfElements = currentPageData.length;

  // 重新生成分頁參數(shù)
  var pageParams = {
    size: size,             // 每頁數(shù)據(jù)條數(shù)
    page: page,             // 頁碼數(shù)
    last: last,             // 是否首頁
    first: first,            // 是否尾頁
    totalPages: totalPages,       // 總頁數(shù)
    totalElements: totalElements,    // 總數(shù)據(jù)條數(shù)
    numberOfElements: numberOfElements  // 當前頁有幾條數(shù)據(jù)
  };

  // 回調(diào)
  if (callback) {
    callback(pageParams, currentPageData);
  }
};

獲取當前頁數(shù)據(jù)

獲取當前頁的數(shù)據(jù),我們需要知道每頁數(shù)據(jù)條數(shù),頁碼數(shù)即可對數(shù)據(jù)進行分割。

var currentPageData = data.slice(0 + page * size, size + page * size);

對數(shù)據(jù)進行分割,數(shù)據(jù)應該是從0size,加上page * size就是之前的頁數(shù)中的數(shù)據(jù)量。

構(gòu)建分頁參數(shù)

// 計算總頁數(shù)和總數(shù)據(jù)條數(shù)
var totalPages  = Math.ceil(data.length / size);
var totalElements = data.length;
// 計算當前頁是否為首頁 是否為尾頁
var first = page === 0 ? true : false;
var last = page === totalPages - 1 ? true : false;
// 獲取當前頁總共有多少條數(shù)據(jù)
var numberOfElements = currentPageData.length;

數(shù)據(jù)總數(shù)除以每頁數(shù)據(jù)條數(shù)向上取整得到總頁數(shù)。

如果頁數(shù)為0,則為首頁;如果頁數(shù)為總頁數(shù)減1,則為尾頁。

復制代碼 代碼如下:
<yunzhi-page reload="reloadByPage" total-pages="pageParams.totalPages" total-elements="pageParams.totalElements" first="pageParams.first" last="pageParams.last" number="pageParams.page" size="pageParams.size" number-of-elements="pageParams.numberOfElements"></yunzhi-page>


以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • angularJs復選框checkbox選中進行ng-show顯示隱藏的方法

    angularJs復選框checkbox選中進行ng-show顯示隱藏的方法

    今天小編就為大家分享一篇angularJs復選框checkbox選中進行ng-show顯示隱藏的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Angular中樣式綁定解決方案

    Angular中樣式綁定解決方案

    這篇文章主要介紹了Angular中樣式綁定解決方案,使用ngClass和ngStyle可以進行樣式的綁定,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • AngularJS基礎學習筆記之指令

    AngularJS基礎學習筆記之指令

    指令(Directives)是所有AngularJS應用最重要的部分。盡管AngularJS已經(jīng)提供了非常豐富的指令,但還是經(jīng)常需要創(chuàng)建應用特定的指令。這篇教程會為你講述如何自定義指令,以及介紹如何在實際項目中使用。
    2015-05-05
  • angular2中router路由跳轉(zhuǎn)navigate的使用與刷新頁面問題詳解

    angular2中router路由跳轉(zhuǎn)navigate的使用與刷新頁面問題詳解

    這篇文章主要給大家介紹了angular2中router路由跳轉(zhuǎn)navigate的使用與刷新頁面問題的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • AngularJS HTML編譯器介紹

    AngularJS HTML編譯器介紹

    這篇文章主要介紹了AngularJS HTML編譯器介紹,AngularJS的HTML編譯器能讓瀏覽器識別新的HTML語法。它能讓你將行為關聯(lián)到HTML元素或者屬性上,甚至能讓你創(chuàng)造具有自定義行為的新元素,需要的朋友可以參考下
    2014-12-12
  • AngularJS中指令的四種基本形式實例分析

    AngularJS中指令的四種基本形式實例分析

    這篇文章主要介紹了AngularJS中指令的四種基本形式,結(jié)合實例形式分析了AngularJS指令的定義、使用方法及相關注意事項,需要的朋友可以參考下
    2016-11-11
  • AngularJS 模塊詳解及簡單實例

    AngularJS 模塊詳解及簡單實例

    本文主要介紹AngularJS 模塊,這里幫大家整理了相關資料,詳細介紹了AngularJS的基礎知識,有需要的朋友可以參考下
    2016-07-07
  • Angular2學習筆記——詳解NgModule模塊

    Angular2學習筆記——詳解NgModule模塊

    這篇文章主要介紹了Angular2學習筆記——詳解NgModule模塊,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 詳解AngularJS中的表達式使用

    詳解AngularJS中的表達式使用

    這篇文章主要介紹了詳解AngularJS中的表達式使用,包括處理數(shù)字和字符串等各種對象的操作,需要的朋友可以參考下
    2015-06-06
  • AngularJs  Creating Services詳解及示例代碼

    AngularJs Creating Services詳解及示例代碼

    本文主要介紹AngularJs Creating Services的知識資料,這里整理了詳細的資料及簡單示例代碼,有需要的小伙伴可以參考下
    2016-09-09

最新評論