ホームページ ウェブフロントエンド jsチュートリアル angularjs_AngularJS を使用して完全なテーブルを作成する方法

angularjs_AngularJS を使用して完全なテーブルを作成する方法

May 16, 2016 pm 03:19 PM
angularjs テーブルを作る

私は学習と執筆を同時に行っているので、この構成はかなり乱雑です。コミュニケーションとテストを容易にするために、ここに私の例の完全なコードを示します。ご質問があれば、コメントしてください。

まず、テーブルは主に angularjs を使用して BootStrap スタイルで編集されます。便宜上、テスト中にブートストラップ、angularjs、および jq ファイルを自分で導入する必要があります。

全体的なコード プレビュー:

HTML:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

<!DOCTYPE html>

<html lang="en" ng-app="myModule">

<head>

 //需要自行引入BOOTStrap,angularjs和jQuery的js,css文件

 <style>

  .pagination .num{

   font-size:22px;color:red;

  }

  .text{

   margin:0 auto;

   border:1px solid #ccc;

   width:100%;

   max-width:200px;

  }

 </style>

 <title>欢迎</title>

</head>

<body ng-controller="myCtrl">

 <div class="block">

  <div class="navbar navbar-inner block-header">

   <div class="muted pull-left">{{kaohzbTitle}}</div>

  </div>

 

   <div class="span12" style="float:left;">

    <div class="table-toolbar">

     <button style="margin-left: 5px;" id="refresh" ng-click="refresh()"

       class="btn btn-success">

      <i class=" icon-refresh icon-white"></i> 刷新

     </button>

     <button ng-disabled="isdisabled" class="btn" ng-class="{'btn-info':isInfo}" id="savekaohzb"

       ng-click="save()">

      <i class="icon-edit icon-white"></i> 保存

     </button>

    </div>

   </div>

   <div class="row-fluid">

    <div class="span6"></div>

    <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>

   </div>

  <div class="pagination">

   <ul style="float:right">

    <li id="previous"><a href="">上一页</a></li>

    <li><!--用于页标的显示 -->

     <ul id="page_num_all">

     </ul>

    </li>

    <li id="next"><a href="" style="border:1px solid #ddd;float:right">下一页</a></li>

   </ul>

   <span>

    当前为第<span class="num" id="current_page"></span>页,总共<span class="num" id="page_all"></span>页

   </span>

   <span>您当前对select的操作值为:</span>{{typename}}

  </div>

  <!-- END FORM-->

 </div>

</body>

ログイン後にコピー

js コード:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

<script>

 angular.module("myModule",[]).controller('myCtrl', function($scope) {

  $scope.kaohzbTitle = "考核指标维护";

  $scope.search = new Object();

  $scope.isdisabled=false;

  $scope.isInfo=false;

  $scope.saveDate="";//用于保存得到的原始数据

// $http.post请求表格数据

// 模仿请求得到的数据

  var datalist=[{

   id:1,zbname:"中亚赛区比赛",zbtime:"2015-12-03",zbrul1:"胜利",zbrul2:"失败",por:"请输入说明内容",score:"2:1",type:"支持红方"},{

   id:2,zbname:"日韩赛区比赛",zbtime:"2015-11-11",zbrul1:"胜利",zbrul2:"胜利",por:"请输入说明内容",score:"2:1",type:"支持蓝方"},{

   id:3,zbname:"欧美赛区比赛",zbtime:"2015-3-03",zbrul1:"失败",zbrul2:"胜利",por:"请输入说明内容",score:"2:1",type:"双方相同"},{

   id:4,zbname:"中东赛区比赛",zbtime:"2016-1-05",zbrul1:"胜利",zbrul2:"失败",por:"请输入说明内容",score:"2:1",type:"支持蓝方"},{

   id:5,zbname:"北京赛区比赛",zbtime:"2014-12-23",zbrul1:"失败",zbrul2:"胜利",por:"请输入说明内容",score:"2:1",type:"双方相同"},{

   id:6,zbname:"韩国赛区比赛",zbtime:"2015-11-01",zbrul1:"失败",zbrul2:"胜利",por:"请输入说明内容",score:"2:1",type:"双方相同"},{

   id:7,zbname:"日本赛区比赛",zbtime:"2011-1-23",zbrul1:"胜利",zbrul2:"失败",por:"请输入说明内容",score:"2:1",type:"支持红方"},{

   id:8,zbname:"中亚赛区比赛",zbtime:"2013-12-15",zbrul1:"失败",zbrul2:"胜利",por:"请输入说明内容",score:"2:1",type:"支持蓝方"},{

   id:9,zbname:"中亚赛区比赛",zbtime:"2015-10-17",zbrul1:"失败",zbrul2:"胜利",por:"请输入说明内容",score:"2:1",type:"支持红方"},{

   id:10,zbname:"中亚赛区比赛",zbtime:"2015-11-21",zbrul1:"胜利",zbrul2:"胜利",por:"请输入说明内容",score:"2:1",type:"支持蓝方"},{

   id:11,zbname:"中亚赛区比赛",zbtime:"2015-2-02",zbrul1:"失败",zbrul2:"失败",por:"请输入说明内容",score:"2:1",type:"支持红方"},{

   id:12,zbname:"中亚赛区比赛",zbtime:"2015-2-05",zbrul1:"胜利",zbrul2:"失败",por:"请输入说明内容",score:"2:1",type:"双方相同"}];

$scope.fun=function(){

   var e=window.event||arguments[0];

   var src=e.srcElement||e.target;

   if(src.nodeName=="TD"){

    var par=src.parentNode;

    var sd=par.getElementsByTagName("td")[0];

    if(sd.firstChild.checked==true){

     sd.firstChild.checked=false;

    }else{

     $("tr td").attr("checked",false);

     sd.firstChild.checked=true;

    }

   }

  }

$scope.refresh=function(){//点击刷新按钮显示表格

   $scope.saveDate=datalist;

   // console.log("结束赋予数据");

   $scope.$watch("saveDate",function(){//2016.1.20监听列表生成数据,当发生变化时执行刷新列表

    table_page();

    $scope.isshow=true;

   });

  }

 

  $scope.save=function(){//页面提交按钮

   console.log("准备保存");

   console.log($scope.saveDate);//只要数据改变,自动保存到原始数据列表中

 

  }

 

  //表格分页功能

  function table_page(){

   var show_page=5;//每页显示的条数

   var page_all=$("#page").children().size();//总条数

   var current_page=1;//当前页

//  console.log(page_all);

   var page_num=Math.ceil(page_all/show_page);//总页数

   var current_num=0;//用于生成页标的计数器

   var li="";//页标元素

   while(page_num>current_num){//循环生成页标元素

    li+='<li class="page_num"><a href="javasctip:(0)">'+(current_num+1)+'</a></li>';

    current_num++;

   }

   $("#page_num_all").html(li);//添加页标到页面

   $('#page tr').css('display', 'none');//设置隐藏

   $('#page tr').slice(0, show_page).css('display', '');//设置显示

   $("#current_page").html(" "+current_page+" ");//显示当前页

   $("#page_all").html(" "+page_num+" ");//显示总页数

   $("#previous").click(function(){//上一页

    var new_page=parseInt($("#current_page").text())-1;

    if(new_page>0){

     $("#current_page").html(" "+new_page+" ");

     tab_page(new_page);

    }

   });

   $("#next").click(function(){//下一页

    var new_page=parseInt($("#current_page").text())+1;//当前页标

    if(new_page<=page_num){//判断是否为最后或第一页

     $("#current_page").html(" "+new_page+" ");

     tab_page(new_page);

    }

   });

   $(".page_num").click(function(){//页标跳转

    var new_page=parseInt($(this).text());

    tab_page(new_page);

   });

   function tab_page(index){//切换对应页标的页面

    var start=(index-1)*show_page;//开始截取的页标

    var end=start+show_page;//截取个数

    $('#page').children().css('display', 'none').slice(start, end).css('display', '');

    current_page=index;

    $("#current_page").html(" "+current_page+" ");

   }

  }

 

 }).directive('contenteditable', function() {//自定义ngModel的属性可以用在div等其他元素中

  return {

   restrict: 'A', // 作为属性使用

   require: '&#63;ngModel', // 此指令所代替的函数

   link: function(scope, element, attrs, ngModel) {

    if (!ngModel) {

     return;

    } // do nothing if no ng-model

    // Specify how UI should be updated

    ngModel.$render = function() {

     element.html(ngModel.$viewValue || '');

    };

    // Listen for change events to enable binding

    element.on('blur keyup change', function() {

     scope.$apply(readViewText);

    });

    // No need to initialize, AngularJS will initialize the text based on ng-model attribute

    // Write data to the model

    function readViewText() {

     var html = element.html();

     // When we clear the content editable the browser leaves a <br> behind

     // If strip-br attribute is provided then we strip this out

     if (attrs.stripBr && html === '<br>') {

      html = '';

     }

     ngModel.$setViewValue(html);

    }

   }

  };

 })

</script>

ログイン後にコピー

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Kingsoft Docs APP ファイルでテーブルを作成する方法_Kingsoft Docs 携帯電話に外部フォト アルバムの写真を挿入する方法 Kingsoft Docs APP ファイルでテーブルを作成する方法_Kingsoft Docs 携帯電話に外部フォト アルバムの写真を挿入する方法 Feb 28, 2024 pm 03:28 PM

職場に入った友人は、Kingsoft Docs を使用したことがあるはずです。このソフトウェアには、コンピュータ バージョンとモバイル バージョンがあります。Kingsoft Docs のモバイル バージョンでは、Word 文書に表を作成または挿入する方法はありますか?オフィスのプロセスでは、よく外部の画像や表を Word ファイルに挿入する必要がある場合があります。多くの初心者はその方法を知りません。実際、Kingsoft Docs を使用すると、表や画像をすぐに挿入できます。モバイル ページで対応するオプションを見つけるだけです。操作は可能ですので、以下のエディタで学習してみましょう。 Kingsoft Document APP ファイルに表を作成する方法 1. まず、携帯電話で Kingsoft Document Android APP に入り、ホームページ上で表を挿入する必要がある Word 文書をクリックします。 2. Wordファイルを開いた後、指を使用してください

入門から習得まで、2022 年の最新 5 つの angularjs チュートリアル 入門から習得まで、2022 年の最新 5 つの angularjs チュートリアル Jun 15, 2017 pm 05:50 PM

Javascript は、コードの構成、コードのプログラミング パラダイム、およびオブジェクト指向理論の点で非常にユニークな言語です。しかし、JavaScript が 20 年間主流であったとはいえ、jQuery、Angularjs、さらには React などの人気のあるフレームワークを理解したい場合は、「Black Horse Cloud Classroom JavaScript Advanced Framework」を見てください。デザインビデオチュートリアル」。

PHP と AngularJS を使用して応答性の高い Web サイトを構築し、高品質のユーザー エクスペリエンスを提供します PHP と AngularJS を使用して応答性の高い Web サイトを構築し、高品質のユーザー エクスペリエンスを提供します Jun 27, 2023 pm 07:37 PM

今日の情報化時代において、ウェブサイトは人々が情報を入手し、コミュニケーションを図るための重要なツールとなっています。レスポンシブな Web サイトはさまざまなデバイスに適応し、ユーザーに高品質のエクスペリエンスを提供できます。これは、現代の Web サイト開発のホットスポットとなっています。この記事では、PHP と AngularJS を使用して応答性の高い Web サイトを構築し、高品質のユーザー エクスペリエンスを提供する方法を紹介します。 PHP の概要 PHP は、Web 開発に最適なオープンソースのサーバー側プログラミング言語です。 PHP には、学びやすさ、クロスプラットフォーム、豊富なツール ライブラリ、開発効率など、多くの利点があります。

Word文書に表を作成する方法 Word文書に表を作成する方法 Mar 18, 2024 pm 02:09 PM

制作チュートリアル: 1. Microsoft Word を開き、新しい文書を作成するか、既存の文書を開きます; 2. 表を挿入したい位置にカーソルを移動します; 3. Word のメニュー バーで [挿入] タブを見つけ、クリックします; 4. 「表」ボタンをクリックし、クリックすると表グリッドがポップアップ表示されます; 5. 表グリッドの上にマウスを置き、必要な行と列の数に応じて必要なグリッド サイズを選択し、マウスをクリックします左クリックするだけでテーブルを挿入できます。

PHP と AngularJS を使用して Web アプリケーションを構築する PHP と AngularJS を使用して Web アプリケーションを構築する May 27, 2023 pm 08:10 PM

インターネットの継続的な発展に伴い、Web アプリケーションは企業情報構築の重要な部分となり、最新化作業に必要な手段となりました。 Web アプリケーションの開発、保守、拡張を容易にするために、開発者は開発ニーズに合った技術フレームワークとプログラミング言語を選択する必要があります。 PHP と AngularJS は非常に人気のある 2 つの Web 開発テクノロジであり、それぞれサーバー側とクライアント側のソリューションであり、これらを組み合わせて使用​​すると、Web アプリケーションの開発効率とユーザー エクスペリエンスを大幅に向上させることができます。 PHPPHPの利点

BarTender でテーブルを作成する方法 - BarTender でテーブルを作成する方法 BarTender でテーブルを作成する方法 - BarTender でテーブルを作成する方法 Mar 04, 2024 pm 09:30 PM

多くのユーザーが BarTender ソフトウェアを使用していますが、BarTender でテーブルを作成する方法をご存知ですか? 以下のエディターで BarTender でテーブルを作成する方法が表示されます。以下を見てみましょう。 1. テーブルは複数の直線をつなぎ合わせたものにすぎないため、BarTender では線ツールと形状ツールを使用してテーブルを描画できます。通常、単純なテーブルを扱う場合はこの方法を使用します。 BarTender テーブルの外枠として長方形を使用し、必要な水平線と垂直線を追加すると、次の効果が得られます。 3. Excel テーブルに必要な栄養成分表などのテーブルを事前に作成する方法もあります。次に、テーブルを直接コピーして貼り付けます

wps を使用して表を作成する方法-wps を使用して表を作成する方法 wps を使用して表を作成する方法-wps を使用して表を作成する方法 Mar 04, 2024 pm 11:01 PM

WPS を使用して表を作成する方法をまだ知らない友人も多いため、以下の編集者が WPS を使用して表を作成する方法を説明します。ステップ1:wpsソフトウェアを開き、上部の「テーブル」をクリックし、次に「新しい空白のドキュメント」をクリックします(図を参照)。ステップ 2: wps テーブルを開き、10 行 6 列のセルの例を選択し、ツールバーの「フィールド」アイコンをクリックして、セルに境界線を追加します (下図を参照)。ステップ 3: 最初の行を選択し、結合した文を使用して、結びの言葉を入力します (図を参照)。ステップ 4: 他の空白セルにデータを入力します。つまり、単純な WPS テーブルが作成されます (図を参照)。それが上の編集者です

Flask と AngularJS を使用してシングルページ Web アプリケーションを構築する Flask と AngularJS を使用してシングルページ Web アプリケーションを構築する Jun 17, 2023 am 08:49 AM

Web テクノロジーの急速な発展に伴い、シングル ページ Web アプリケーション (SinglePage Application、SPA) は、Web アプリケーション モデルとしてますます人気が高まっています。従来の複数ページの Web アプリケーションと比較して、SPA の最大の利点は、ユーザー エクスペリエンスがよりスムーズであり、サーバーのコンピューティング負荷も大幅に軽減されることです。この記事では、FlaskとAngularJSを使って簡単なSPAを構築する方法を紹介します。 Flask は軽量の Py です

See all articles