C'est mon premier projet de ma vie. J'ai besoin d'utiliser angulairejs pour créer des tableaux et implémenter diverses fonctions. Par conséquent, j'ai rencontré divers problèmes et points de connaissances que je ne connaissais pas auparavant, je vais les enregistrer ici pour que tout le monde puisse. apprendre, communiquer et résoudre. Il se peut que ce ne soit pas parfait ou qu'il ne réponde pas aux spécifications. Si vous avez un meilleur moyen, veuillez le signaler. Puisque la production de cette fonction de table s'ajoute petit à petit, je la présenterai également en plusieurs parties. Si de nouvelles fonctions sont ajoutées à l'avenir, je les présenterai également de temps en temps Mise à jour
.Tout d'abord, le tableau est édité dans le style BootStrap, principalement en utilisant angulairejs. Pour plus de commodité, il existe également une méthode jQuery. Vous devez introduire vous-même les fichiers bootstrap, angulaires et jq pendant les tests.
Texte :
Partie HTML
La génération d'un tableau est relativement simple, principalement via la liaison de données angulairejs et ng-repeat pour générer automatiquement chaque élément d'information.
1. Vous devez d'abord personnaliser le contenu de l'en-tête, c'est-à-dire le code dans l'en-tête
1.1 Parmi eux, ng-model est la fonction de sélection totale de la case à cocher En liant les données de cet état, elle peut être attribuée de manière synchrone à toutes les cases à cocher du corps (en utilisant ng-checked)
.2. Parcourez ng-repeat dans tbody pour générer chaque élément d'information, où :
2.1
est un div qui prend en charge la saisie de contenu multiligne et peut remplacer rapidement et facilement la balise textarea. Cependant, comme ng-model ne prend pas en charge la liaison de données des div, vous devez utiliser des directives pour personnaliser la fonction ngmodel, qui sera discutée plus tard2.3 Utilisez la balise select dans ng-repeat pour lier les données Vous ne pouvez pas lier ng-model à chaque option. Cela sera expliqué plus tard
.3. Enfin, attribuez simplement les données à $scope.saveData pour générer le tableau
<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>
Partie JS : Notez que tous les codes de partie de script sont écrits en angulaire.module("myModule",[]).controller('myCtrl', function($scope) {écrit ici} Medium