如何用angularjs制作一個完整的表格之一__創建簡單表格

初步接手人生的第一個項目,需要用angularjs制作表格和實現各種功能,因此遇到了各種問題和以前不熟悉的知識點,在此記錄下來,以供大家學習交流,解決方式可能并不完善或符合規范,如果大家有更好的方式歡迎指出,由于這個表格功能的制作是一點點添加上去的,因此我也分成幾個部分介紹,日后如增加了新的功能也會不時更新的

首先,表格采用的是BootStrap樣式編輯的,主要使用的是angularjs,為了方便也有jQuery的方法,在測試時需自行引入bootstrap,angularjs和jq的文件。

正文:

HTML部分

生成表格比較簡單,主要是通過angularjs的數據綁定和ng-repeat來自動生成每一條信息。

1.首先需要自定義表頭的內容,即thead中的代碼

  1.1其中ng-model是復選框的全選功能,通過綁定該狀態的數據,可以將其同步賦予tbody中的所有checkbox(用ng-checked)

2.在tbody中通過ng-repeat來循環生成其中的每一條信息,其中:

  2.1<div class="text" contenteditable="true" ng-model="tb.por"></div>是支持輸入多行內容的div,可以方便快捷的替代textarea標簽,但是由于ng-model不支持div的數據綁定,因此需要使用directive 來自定義ngmodel功能,后面會說

  2.3 在ng-repeat中使用select標簽對其中進行數據綁定,也不能將ng-model綁定到每個option中,后面會有說明

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部分:備注所有的script部分的代碼都寫在angular.module("myModule",[]).controller('myCtrl', function($scope) {寫在這里}中

$scope.isshow=true;
//
模仿請求得到的數據
$scope.saveDate=[{ 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:"雙方相同"}
];
// var arr=[];//用于分別綁定ngrepeat中生成的各條數據信息

?

轉載于:https://www.cnblogs.com/weblv/p/5146835.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373755.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373755.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373755.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java的String類是上帝的對象嗎?

10月&#xff0c;我寫了一個博客&#xff0c;題為“上帝對象中的頂級特朗普”&#xff0c;其中談到了用167種不同的方法發現的對象的發現&#xff0c;這些方法將該對象與應用程序的所有其他部分鏈接在一起&#xff0c;并且正如您所期望的那樣&#xff0c;上帝或怪物物的一般標準…

十步完全理解SQL

很多程序員視 SQL 為洪水猛獸。SQL 是一種為數不多的聲明性語言&#xff0c;它的運行方式完全不同于我們所熟知的命令行語言、面向對象的程序語言、甚至是函數語言&#xff08;盡管有些人認為 SQL 語言也是一種函數式語言&#xff09;。 我們每天都在寫 SQL 并且應用在開源軟件…

curl命令java_上curl java 模擬http請求

最近&#xff0c;我的項目要求java模擬http請求&#xff0c;獲得dns解決 tcp處理過的信息特定的連接。java api提供urlConnection apache提供的httpClient都不能勝任該需求&#xff0c;二次開發太費時間。于是google之。最后 得出兩種解決的方法&#xff1a;一是使用HTTP4J。該…

androidstudio 優化gradle編譯效率

androidstuido 使用gradle自己主動構建和編譯。有時做少量改動編譯須要等待時間過長&#xff0c;近期Erik Hellman編寫的Boosting the performance for Gradle in your Android projects&#xff08; 譯文 參考1&#xff09;提到了此問題的優化方法。1.gradle的升級到2.4 。 2.…

Common Knowledge_快速冪

問題 I: Common Knowledge 時間限制: 1 Sec 內存限制: 64 MB提交: 9 解決: 8[提交][狀態][討論版]題目描述 Alice and Bob play some game in which they score points. Each of the two has an n-digit scoreboard which depicts numbers in base 10 (with leading zeroes).…

播放2.0:Akka,Rest,Json和依賴項

在過去的幾個月中&#xff0c;我越來越多地涉足scala。 Scala與“ Play框架”一起為您提供了一個非常有效且快速的開發環境&#xff08;即&#xff0c;您掌握了Scala語言的特質之后&#xff09;。 Play框架背后的家伙一直在努力開發新版本的Play 2.0。 在Play 2.0中&#xff0c…

python使用多線程寫生成器_Python學習——多線程,異步IO,生成器,協程

Python的語法是簡潔的&#xff0c;也是難理解的。比如yield關鍵字&#xff1a;def fun():for i in range(5):print(test)x yield iprint(good, x)if __name__ __main__:a fun()# print(a.__next__())# print(a.__next__())# print(a.__next__())y a.send(None)y a.send(-1…

Python與C++結構體交互

需求&#xff1a;根據接口規范&#xff0c;實現與服務端的數據交互 服務端結構體分包頭、包體、包尾 包頭C結構體示例如下 1 typedef struct head2 {3 BYTE string1;4 BYTE string2; //包類型5 BYTE string3; //版本號,目前為06 char s…

Ubuntu下安裝OpenSSH Server并在客戶端遠程連接Ubuntu

本文主要是向讀者介紹了如何在Ubuntu系統下安裝OpenSSH Server并在客戶端遠程連接Ubuntu&#xff0c;共有兩種方法&#xff0c;一種是命令行安裝&#xff1b;另一種是通過Ubuntu Software Center安裝&#xff0c;希望對大家能有幫助&#xff01; 方法一&#xff08;推薦&#…

算法:老鼠走迷宮問題

算法&#xff1a;老鼠走迷宮問題(初) 【寫在前面】 老鼠走迷宮問題的遞歸實現&#xff0c;是對遞歸思想的一種應用。 【問題描述】 給定一個二維數組&#xff0c;數組中2表示墻壁&#xff0c;0表示通路&#xff0c;由此數組可展示為一個迷宮圖。給定入口位置和出口位置&#xf…

rust python對比_Python Rust 迭代器對比

迭代是數據處理的基石&#xff0c;而 Python 中所有集合都可以迭代&#xff0c;這是 Python 讓使用者感到非常方便的特征之一。下面是一些在 Python 中經常使用的迭代模式# 列表for i in [1, 2, 3, 4]:print(i)# 字典di {a: 1, b: 2, c: 3}# 迭代鍵for k in di.keys():print(k…

WebSphere Application Server性能調整工具包

IBM已發布了WebSphere Application Server性能調整工具包 &#xff0c;該工具包具有從Eclipse工作區*監視多個 WebSphere Application Server的功能。 該工具使用WAS Performance Monitoring統計信息來獲取并繪制圖表&#xff0c;以指示服務器的運行狀況。 *請注意&#xff0c;…

CentOS 配置防火墻操作實例(啟、停、開、閉端口)

CentOS 配置防火墻操作實例&#xff08;啟、停、開、閉端口&#xff09;&#xff1a; 注&#xff1a;防火墻的基本操作命令&#xff1a; 查詢防火墻狀態: [rootlocalhost ~]# service iptables status<回車> 停止防火墻: [rootlocalhost ~]# service iptables stop &…

linux常用命令-壓縮解壓命令

壓縮解壓命令 目錄 1. 壓縮解壓命令&#xff1a;gzip 2. 壓縮解壓命令&#xff1a;gunzip 3. 壓縮解壓命令&#xff1a;tar 4. 壓縮解壓命令&#xff1a;zip 5. 壓縮解壓命令&#xff1a;unzip 6. 壓縮解壓命令&#xff1a;bzip2 7. 壓縮解壓命令&#xff1a;bunzip2 1. 壓縮解…

達夢數據庫查詢數據庫所有表名_達夢數據庫的一些實用小SQL

1)當前數據庫中的模式名&#xff1a;select distinct object_name TABLE_SCHEMA from all_objects where object_type SCH;2)查出各模式對應的用戶&#xff1a;selectSCH_OBJ.NAME ,SCH_OBJ.ID ,SCH_OBJ.CRTDATE,USER_OBJ.NAMEfrom(select NAME, ID, PID, CRTDATE from …

設置Java EE 6開發環境

本教程簡要說明了如何設置典型的環境來開發基于Java EE 6的應用程序。 除了可以正常工作的Windows XP客戶端具有足夠的CPU能力和內存外&#xff0c;本教程沒有其他先決條件。 在教程中&#xff0c;我們將需要安裝以下組件&#xff1a; Java 6 JDK更新26 用于Java EE開發人員的…

css cursor url用法格式詳解

css cursor url用法格式&#xff1a;css:{cursor:url(圖標路徑),auto;} //IE,FF,chrome瀏覽器都可以 實例代碼&#xff1a;html{cursor: url("http://ued.taobao.com/blog/wp-content/themes/taobaoued/images/cursor.ico"),auto;} 解析&#xff1a;前面的url是自定義…

iostext添加點擊事件_iOS開發小技巧 - label中的文字添加點擊事件

Label中的文字添加點擊事件以前老師講過類似的功能,自己懶得回頭看了,找了很多第三方的,感覺這個小巧便利,作者只是擴展了分類,實現起來代碼也少.先來個效果圖自己的項目,直接上代碼- (void)setTopicModel:(CYQTopicModel *)topicModel{_topicModel topicModel;NSArray *likeA…

ubantu下安裝Nginx

Nginx 概述 Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 服務器&#xff0c;也是一個 IMAP/POP3/SMTP 代理服務器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的&#xff0c;第一個公開版本0.1.0發布于2004年10月4日。其將源代碼…

Hadoop中的問題–何時無法交付?

Hadoop是很棒的軟件。 它不是原始的&#xff0c;但肯定不能消除它的榮耀。 它建立在并行處理的基礎上&#xff0c;這個概念已經存在了數十年。 Hadoop雖然從概念上來說并不是獨創性的&#xff0c;但它顯示了自由開放的力量&#xff08;就像在啤酒中一樣&#xff01;&#xff09…