AngularJSは、非常に有望でペースの速いjavascriptフレームワークです。 多くのフレームワークを試してみましたが、文字通りレイアウトを再活性化することができるため、これに決めました。 私はディレクティブを頻繁に使用するためにいくつかの要素を準備することを可能にするディレクティブの実装が本当に好きです。 インターネットには多くの例と既成のソリューションがありますが、1つのソリューションが見つかりませんでした。これがこの記事と小さなライブラリを書く理由でした。
多くの場合、データ、つまりテーブル内のデータの表示に遭遇します。 このような各インターフェイスには、Ajaxを使用したデータの読み込み、大量のデータのページへの分割、データのフィルター処理、並べ替えなど、いくつかの機能が必要です。
私はこれらの問題を迅速に解決し、最小限のコードを記述したかったのです。
起こったことは次のとおりです。
GitHubリポジトリ<table ng-table="tableParams" show-filter="true" class="table"> <tr ng-repeat="user in users"> <td title="Name" filter="{ 'name': 'text' }" sortable="name"> {[user.name]} </td> <td title="Age" filter="{ 'action': 'button' }" sortable="age"> {[user.age]} </td> </tr> </table>
Javascript:
var Api = $resource('/data'); $scope.tableParams = new ngTableParams({ page: 1,
デモhtmlコードからわかるように、プログラマー自身がテーブルの行とその中の各セルを表示するテンプレートの行の塗りつぶしを制御します。これは、このソリューションを、私が検討した他のソリューション(例えば
ng-grid)テーブルの見出しとページネーションは自動的に生成され、テーブルに追加されます。 ディレクティブとデータ読み込みコード間の関係全体が
tableParams
パラメーターに割り当てられます。この追跡により、データを更新するタイミング(サーバーからの読み込みまたは配列の再ソート)を知ることができます。
その結果、私たちは人生を少し良くする小さな指令を持っています。
AngularJS自体に1つの小さな
バグがあるため、インターネット上ではこの種のソリューションはほとんどないと思います。 実際、それが存在していなかった場合、非常にクールで便利な
ng-transclude
を使用するだけですべてが解決されます。 しかし、それが修正されるまで、私のソリューションがあなたにとって役立つことを願っています。