ホームページ  >  記事  >  ウェブフロントエンド  >  AngularJS フロントエンド ページングの実装

AngularJS フロントエンド ページングの実装

不言
不言オリジナル
2018-07-09 16:10:351587ブラウズ

この記事では、主に AngularJS フロントエンド ページング実装を紹介します。これは、全体的なデータ量が比較的小さいため、必要な友人に参照してもらえるようにしました。なので、処理のためにページングをフォアグラウンドに置くことができます。

実際、ページングの原理も非常に単純です。ページング用に選択されたページ数とページごとのデータ項目数に基づいて、現在表示されている配列内の項目数を決定し、ページング パラメーターとページングを構築します。それらを既存のページング命令に渡します。

// 初始化分页参数
$scope.pageParams = {
    size: $stateParams.size,      // 每页数据条数
    page: $stateParams.page,      // 页码数
    last: undefined,              // 是否首页
    first: undefined,             // 是否尾页
    totalPages: undefined,        // 总页数
    totalElements: undefined,     // 总数据条数
    numberOfElements: undefined   // 当前页有几条数据
};

これはページング コマンドに必要なデータなので、最初に現在のページに表示されるデータを取得し、次にパラメータを生成してページング コマンドに渡します。

パブリック メソッド

これは、CommonService で最後に実装されたパブリック メソッドです。

/**
 * 重新生成分页参数与分页数据
 * @param  {每页数据条数}   size
 * @param  {页码数}        page
 * @param  {全部数据}      data
 * @param  {Function}     callback
 * callback (pageParams, currentPageData)
 * pageParams: 分页的标准
 * currentPageData: 当前页的数据
 */
self.reloadPageParamsAndData = function(size, page, data, callback) {
    // 校验传入的参数
    if (typeof size === 'undefined') {
        throw '未接收到每页数据条数信息';
    }
    if (typeof page === 'undefined') {
        throw '未接收到分页信息';
    }
    if (typeof data === 'undefined') {
        throw '未接收到数据信息';
    }
    // 计算总页数和总数据条数
    var totalPages    = Math.ceil(data.length / size);
    var totalElements = data.length;
    // 计算当前页是否为首页 是否为尾页
    var first = page === 0 ? true : false;
    var last  = page === totalPages - 1 ? true : false;
    // 根据分页参数计算当前页应该显示的数据 slice数组元素分割
    var currentPageData = data.slice(0 + page * size, size + page * size);
    // 获取当前页总共有多少条数据
    var numberOfElements = currentPageData.length;

    // 重新生成分页参数
    var pageParams = {
        size: size,                          // 每页数据条数
        page: page,                          // 页码数
        last: last,                          // 是否首页
        first: first,                        // 是否尾页
        totalPages: totalPages,              // 总页数
        totalElements: totalElements,        // 总数据条数
        numberOfElements: numberOfElements   // 当前页有几条数据
    };

    // 回调
    if (callback) {
        callback(pageParams, currentPageData);
    }
};

現在のページのデータを取得します

現在のページのデータを取得するには、各ページのデータ項目数とデータを分割するページ番号を知る必要があります。 CommonService中的公共方法。

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

获取当前页数据

获取当前页的数据,我们需要知道每页数据条数,页码数即可对数据进行分割。

// 计算总页数和总数据条数
var totalPages    = Math.ceil(data.length / size);
var totalElements = data.length;
// 计算当前页是否为首页 是否为尾页
var first = page === 0 ? true : false;
var last  = page === totalPages - 1 ? true : false;
// 获取当前页总共有多少条数据
var numberOfElements = currentPageData.length;

对数据进行分割,数据应该是从0size,加上page * size就是之前的页数中的数据量。

构建分页参数

<yunzhi-page></yunzhi-page>

数据总数除以每页数据条数向上取整得到总页数。

如果页数为0,则为首页;如果页数为总页数减1rrreee

データは 0 から size までの範囲で、page * size を加算したものが前のページ番号のデータになります。量。

AngularJS フロントエンド ページングの実装ページング パラメーターを構築する

rrreee

データの合計数をページごとのデータ項目数で割って切り上げて合計ページ数を取得します。

ページ数が 0 の場合は最初のページ、ページ数が合計ページ数から 1 を引いた場合は最後のページです。

rrreee


以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:
AngularJS エクスポート Excel コマンド


🎜🎜🎜🎜angularjs データ バインディング 🎜🎜🎜

以上がAngularJS フロントエンド ページングの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。