基于angular实现树形二级表格


Posted in Javascript onOctober 16, 2021

先看效果:

基于angular实现树形二级表格

代码:

1、html

<div class="userContent_content">
    <div>
      <table>
        <tr>
          <td>节点名称</td>
          <td>节点管理IP</td>
          <td>节点登录名</td> 
          <td>节点登录密码</td> 
        </tr>
        //使用ng-container作为空标签用于辅助放置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>
        //下面是箭头的图片,是展开和收起箭头的切换,通过判断当前点击索引与列表索引是否相等,相等则展开,否则收起
                  <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标签嵌套表格的子级
          <ng-container *ngFor="let childItem of item.nodeList, let j = index">
        //由于在同一个标签内,for循环和if判断不能同时共存,因此我们的隐藏事件if放置tr标签内,通过判断当前点击的索引与列表索引是否一致,相等则收起,不等则显示的功能。
 
            <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表格数据的格式类似如下(你们自己写个模拟数据吧):

基于angular实现树形二级表格

(2)初始化当前的点击索引变量currentClickOpenIndex 为-1

(3)是展开收起箭头的点击事件:

clickShowChildList = (i,item)=>{
    console.log(i,this.currentClickOpenIndex)
    if(this.currentClickOpenIndex==i){
      this.currentClickOpenIndex = -1
    }else{
      this.currentClickOpenIndex = i
    }
  }

然后就完成了……

到此这篇关于基于angular实现树形二级表格的文章就介绍到这了,更多相关angular树形二级表格内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Javascript 相关文章推荐
图片完美缩放
Sep 07 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
Aug 28 Javascript
js获取IP和PcName(IE)在vs中可用
Aug 02 Javascript
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
js计算任意值之间随机数的方法
Jan 16 Javascript
用户代理字符串userAgent可实现的四个识别
Sep 20 Javascript
深入探究AngularJS框架中Scope对象的超级教程
Jan 04 Javascript
jQuery简单绑定单个事件的方法示例
Jun 10 jQuery
JS实现按钮添加背景音乐示例代码
Oct 17 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 Javascript
vuex管理状态仓库使用详解
Jul 29 Javascript
ajax请求前端跨域问题原因及解决方案
浅谈TypeScript 索引签名的理解
JavaScript 反射学习技巧
Oct 16 #Javascript
JS的深浅复制详细
Oct 16 #Javascript
JS 基本概念详细介绍
Oct 16 #Javascript
AJAX实现指定部分页面刷新效果
AJAX实现省市县三级联动效果
Oct 16 #Javascript
You might like
队列在编程中的实际应用(php)
2010/09/04 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
简单讲解Python中的闭包
2015/08/11 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
详解python中的hashlib模块的使用
2019/04/22 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
旷课检讨书大全
2014/01/21 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
交通事故和解协议书
2015/01/27 职场文书
2015年父亲节寄语
2015/03/23 职场文书
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js