ホームページ > 記事 > ウェブフロントエンド > angularjs_AngularJS を使用して単純なテーブルを作成する
これは、angularjs を使用してテーブルを作成し、さまざまな機能を実装する必要があるため、これまでよく知らなかったさまざまな問題や知識点に遭遇したので、ここに記録します。このテーブル関数の作成も少しずつ追加していきますので、完璧ではないかもしれませんし、仕様を満たしていない場合もありますので、ご指摘ください。今後新しい機能が追加された場合も随時更新して紹介していきます
。まず、テーブルは主に angularjs を使用して BootStrap スタイルで編集されます。便宜上、テスト中にブートストラップ、angularjs、および jq ファイルを自分で導入する必要があります。
テキスト:
HTML 部分
テーブルの生成は比較的簡単で、主に angularjs データ バインディングと ng-repeat を使用して各情報を自動的に生成します。
1. まず、ヘッダーのコンテンツ、つまりヘッダー内のコードをカスタマイズする必要があります
1.1 ng-modelはチェックボックスの全選択機能で、この状態のデータをバインドすることでtbody内の全てのチェックボックスに同期的に割り当てることができます(ng-checkedを使用)。
2. tbody で ng-repeat をループして各情報を生成します。2.1a5fe572a39516326636090c31a707de216b28748ea4df4d9c2150843fecfba68 は、複数行のコンテンツの入力をサポートし、迅速かつ簡単に置き換えることができる div です。ただし、ng-model は div のデータ バインディングをサポートしていないため、ディレクティブを使用して ngmodel 関数をカスタマイズする必要があります。これについては後で説明します
2.3 ng-repeatのselectタグを使ってデータをバインドする ng-modelを各オプションにバインドすることはできません
。
3. 最後に、データを $scope.saveData に代入してテーブルを生成します
<table class="table table-striped table-bordered table-hover" id="example" style="margin-top:10px;"> <thead> <tr> <th style="width: 20px;" rowspan="2">全选 <br><input type="checkbox" ng-model="selectAll"></th> <th style="text-align: center; width: 50px;vertical-align: middle" rowspan="2">序号</th> <th style="text-align: center; width: 150px;vertical-align: middle" rowspan="2">名称</th> <th style="text-align: center; width: 150px;vertical-align: middle" rowspan="2">日期</th> <th style="text-align: center; width: 150px;" colspan="3">比赛队伍(红)</th> <th style="text-align: center; width: 150px;" colspan="3">比赛队伍(蓝)</th> <th style="text-align: center; width: 150px;vertical-align: middle" rowspan="2">比分</th> <th style="text-align: center; width: 150px;vertical-align: middle" rowspan="2">说明</th> <th style="text-align: center; width: 150px;vertical-align: middle" rowspan="2">玩家支持队伍</th> </tr> <tr> <th style="text-align: center; width: 80px;">第一场</th> <th style="text-align: center; width: 80px;">第二场</th> <th style="text-align: center; width: 80px;">说明</th> <th style="text-align: center; width: 80px;">第一场</th> <th style="text-align: center; width: 80px;">第二场</th> <th style="text-align: center; width: 80px;">说明</th> </tr> </thead> <tbody ng-click="fun()" id="page" ng-show="isshow"> <!--track by tb.id--> <tr ng-repeat="tb in saveDate"><!-- 只用angularjs实现点击一行就选中全行暂时无法实现 --> <td style="width: 20px;"><input type="checkbox" ng-checked="selectAll"></td> <td style="text-align:center;">{{tb.id}}</td> <td style="text-align:center;">{{tb.zbname}}</td> <td style="text-align:center;">{{tb.zbtime}}</td> <td style="text-align:center;">{{tb.zbrul1}}</td> <td style="text-align:center;">{{tb.zbrul2}}</td> <td style="text-align:center;"><div class="text" contenteditable="true" ng-model="tb.por"></div></td> <td style="text-align:center;">{{tb.zbrul2}}</td> <td style="text-align:center;">{{tb.zbrul1}}</td> <td style="text-align:center;"><div class="text" contenteditable="true" ng-model="tb.por"></div></td><!-- 2016.1.19通过可编译的div来代替输入框 --> <td style="text-align:center;">{{tb.score}}</td> <td style="text-align:center;"><div class="text" contenteditable="true" ng-model="tb.por"></div></td> <td> <select name="" id="" ng-change="changetype(adds)" ng-model="adds" style="text-align:center;width:100%;min-width:80px;margin-bottom:0"> <option value="" ng-show="isShow">{{tb.type}}</option> <option value="支持红方">支持红方</option> <option value="支持蓝方">支持蓝方</option> <option value="双方相同">双方相同</option> </select> </td> </tr> </tbody> </table>
JS パート: すべてのスクリプト パート コードは angular.module("myModule",[]).controller('myCtrl', function($scope) {ここに記述されています} Medium