基于angular實(shí)現(xiàn)樹形二級表格
先看效果:

代碼:
1、html
<div class="userContent_content">
<div>
<table>
<tr>
<td>節(jié)點(diǎn)名稱</td>
<td>節(jié)點(diǎn)管理IP</td>
<td>節(jié)點(diǎn)登錄名</td>
<td>節(jié)點(diǎn)登錄密碼</td>
</tr>
//使用ng-container作為空標(biāo)簽用于輔助放置for或者if事件,它在審查元素中是找不到的
<ng-container *ngFor="let item of currentTotalList,let i = index">
<tr>
<td style="color: #04AEB4;cursor: pointer;" class="img">
<div>
<div>{{item.name}}</div>
<div>
//下面是箭頭的圖片,是展開和收起箭頭的切換,通過判斷當(dāng)前點(diǎn)擊索引與列表索引是否相等,相等則展開,否則收起
<img (click)="clickShowChildList(i,item.name)"
[attr.src]="i == currentClickOpenIndex?'../../assets/resource/img/bottom.png':'../../assets/resource/img/right.png'">
</div>
</div>
</td>
<td>{{item.ip}}</td>
<td>{{item.username}}</td>
<td>{{item.password}}</td>
</tr>
//再次使用ng-container標(biāo)簽嵌套表格的子級
<ng-container *ngFor="let childItem of item.nodeList, let j = index">
//由于在同一個(gè)標(biāo)簽內(nèi),for循環(huán)和if判斷不能同時(shí)共存,因此我們的隱藏事件if放置tr標(biāo)簽內(nèi),通過判斷當(dāng)前點(diǎn)擊的索引與列表索引是否一致,相等則收起,不等則顯示的功能。
<tr *ngIf="i == currentClickOpenIndex">
<td style="color: #04AEB4;cursor: pointer;" class="img">
<div>
<div>
{{childItem.masterIp}}</div>
</div>
</td>
<td>{{childItem.ip}}</td>
<td>{{childItem.username}}</td>
<td>{{childItem.password}}</td>
</tr>
</ng-container>
</ng-container>
</table>
</div>
</div>
2、less
.userContent_content{
width: 100%;
height: calc(~"100% - 60px");
overflow: auto;
>div:nth-child(1){
>table{
width: 100%;
tr{
td{
width: 25%;
text-align: center;
font-size: 14px;
color: #fff;
padding: 16px 0px;
box-shadow: 0 1px #333;
}
}
.img {
>div {
width: 100%;
display: flex;
position: relative;
>div:nth-child(1) {
width: 85%;
white-space: nowrap;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
overflow: hidden;
margin: 0 auto;
}
}
img {
height: 10px !important;
width: 10px !important;
margin-left: 0 !important;
position: absolute;
right: 0;
top: 3px;
}
}
}
}
>div:nth-child(2){
height: 80px;
width: 90%;
display: flex;
align-items: center;
margin: 0 auto;
justify-content: flex-end;
#page{
display: table;
}
}
}
3、js
(1)currentTotalList表格數(shù)據(jù)的格式類似如下(你們自己寫個(gè)模擬數(shù)據(jù)吧):

(2)初始化當(dāng)前的點(diǎn)擊索引變量currentClickOpenIndex 為-1
(3)是展開收起箭頭的點(diǎn)擊事件:
clickShowChildList = (i,item)=>{
console.log(i,this.currentClickOpenIndex)
if(this.currentClickOpenIndex==i){
this.currentClickOpenIndex = -1
}else{
this.currentClickOpenIndex = i
}
}
然后就完成了……
到此這篇關(guān)于基于angular實(shí)現(xiàn)樹形二級表格的文章就介紹到這了,更多相關(guān)angular樹形二級表格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
AngularJs Understanding Angular Templates
本文主要介紹AngularJs Understanding Angular Templates的資料,這里整理了詳細(xì)的資料及簡單示例代碼,有興趣的小伙伴的參考下2016-09-09
AngularJS中一般函數(shù)參數(shù)傳遞用法分析
這篇文章主要介紹了AngularJS中一般函數(shù)參數(shù)傳遞用法,結(jié)合實(shí)例形式分析了模型參數(shù)與普通參數(shù)的具體功能與使用技巧,需要的朋友可以參考下2016-11-11
Angular設(shè)置title信息解決SEO方面存在問題
爬蟲在檢索seo信息的時(shí)候會讀不了js給其賦的值,導(dǎo)致搜索引擎收錄不了或者收錄了無效的信息,下面本文給大家介紹Angular設(shè)置title信息解決SEO方面存在問題,需要的朋友可以參考下2016-08-08
AngularJS ui-router (嵌套路由)實(shí)例
本篇文章主要介紹了AngularJS ui-router (嵌套路由)實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03

