AngularJS のグリッドテーブル

Rana Hasnain Khan 2024年2月15日
AngularJS のグリッドテーブル

AngularJS でデータテーブルを作成するために、ui-bootstrap pagination を備えた ui-grid を紹介します。

AngularJS でグリッドテーブルを作成する

グリッドテーブルまたはデータテーブルは、多数のデータをユーザーフレンドリーに表現するための強力な方法です。ユーザーは、元のデータを変更せずに、必要に応じてデータを並べ替えることができます。

いくつかの従業員データを使用してオブジェクトを作成し、このデータを使用して、ui-grid を使用してグリッドテーブルに表示します。まず、新しいファイル script.js を作成します。このファイルで、モジュールとコントローラーを次のように定義します。

# angular
angular.module('MyApp')
    .controller('TableController', ['uiGridConstants', TableController]);

モジュール内で、使用するいくつかのライブラリを定義します。

# angular
angular.module('MyApp', [
      'ui.grid',
      'ui.grid.pagination',
      'ui.bootstrap'
    ]);

コントローラ TableController を使用して、サンプルデータを含むオブジェクトを定義します。

# angular
function TableController() {
    var data = this;

    data.someData = [
          {
        "id": "1",
        "firstName": "Tom",
        "lastName": "Cruise"
      },
      {
        "id": "2",
        "firstName": "Maria",
        "lastName": "Sharapova"
      },
      {
        "id": "3",
        "firstName": "James",
        "lastName": "Bond"
      }
      ];
      }

オブジェクトを作成したら、script.js でいくつかのグリッドオプションとコードを定義します。

# angular
(function() {

  function TableController() {
    var data = this;

    data.someData = [
          {
        "id": "1",
        "firstName": "Tom",
        "lastName": "Cruise"
      },
      {
        "id": "2",
        "firstName": "Maria",
        "lastName": "Sharapova"
      },
      {
        "id": "3",
        "firstName": "James",
        "lastName": "Bond"
      }
      ];

    data.gridOptions = {
      paginationPageSize: 10,
      enablePaginationControls: false,
      data: data.someData
    }
  }

  angular.module('MyApp', [
      'ui.grid',
      'ui.grid.pagination',
      'ui.bootstrap'
    ]);

  angular.module('MyApp')
    .controller('TableController', ['uiGridConstants', TableController]);

})()

次に、index.html ファイルでフロントエンドの開発を開始します。まず、ng-app を使用してアプリ名をバインドし、以下のスクリプトを使用していくつかのライブラリをインポートします。

コード:

# angular
<!DOCTYPE html>
<html ng-app="MyApp">

  <head>
    <script data-require="angular.js@1.4.8" data-semver="1.4.8" src="https://code.angularjs.org/1.4.8/angular.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" data-semver="0.13.1" data-require="ui-bootstrap@0.13.1" />
    <link data-require="ui-grid@3.0.1" data-semver="3.0.1" rel="stylesheet" href="https://cdn.rawgit.com/angular-ui/bower-ui-grid/v3.0.1/ui-grid.min.css" />
    <script data-require="ui-grid@3.0.1" data-semver="3.0.1" src="https://cdn.rawgit.com/angular-ui/bower-ui-grid/v3.0.1/ui-grid.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.14.3/ui-bootstrap-tpls.js" data-semver="0.14.3" data-require="ui-bootstrap-tpls@0.14.3"></script>
    <script src="script.js"></script>
  </head>
  </html>

体内でコントローラーをバインドし、コントローラーを ui-gridui-bootstrap で使用してデータテーブルを作成します。以下に示すように、次と前のボタンなどのオプションも定義します。

<body ng-controller="TableController as ctrl">
    <h1>Grid Table Example By Rana Hasnain</h1>
    <div>

      <uib-pagination total-items="ctrl.someData.length"
        ng-model="ctrl.gridOptions.paginationCurrentPage"
        items-per-page="ctrl.gridOptions.paginationPageSize"
        boundary-links="true"
        direction-links="true"
        max-size="3"
        first-text="<<"
        previous-text="<"
        next-text=">"
        last-text=">>"
        rotate="true"></uib-pagination>

      <div id="myGrid" ui-grid="ctrl.gridOptions" class="grid" ui-grid-pagination></div>
    </div>

出力:

Angularjs のグリッドテーブル

実行コード

ui-grid および ui-bootstrap ライブラリを使用すると、データを含むオブジェクトを、データを表示して理解しやすく、使いやすい美しいデータテーブルに簡単に変換できます。

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

関連記事 - Angular Table