基于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 相关文章推荐
JavaScript 克隆数组最简单的方法
Feb 12 Javascript
JavaScript中的原型prototype属性使用详解
Jun 05 Javascript
jquery-tips悬浮提示插件分享
Jul 31 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
Sep 10 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
ionic中列表项增加和删除的实现方法
Jan 22 Javascript
jQuery弹出层插件popShow用法示例
Jan 23 Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
微信小程序全局变量功能与用法详解
Jan 22 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
vue-router 路由传参用法实例分析
Mar 06 Javascript
五句话帮你轻松搞定js原型链
Dec 09 Javascript
ajax请求前端跨域问题原因及解决方案
浅谈TypeScript 索引签名的理解
JavaScript 反射学习技巧
Oct 16 #Javascript
JS的深浅复制详细
Oct 16 #Javascript
JS 基本概念详细介绍
Oct 16 #Javascript
AJAX实现指定部分页面刷新效果
AJAX实现省市县三级联动效果
Oct 16 #Javascript
You might like
php中var_export与var_dump的区别分析
2010/08/21 PHP
PHP文章按日期(月日)SQL归档语句
2012/11/29 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
强制设为首页代码
2006/06/19 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
用Python解决计数原理问题的方法
2016/08/04 Python
Python合并多个Excel数据的方法
2018/07/16 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
高中生学习的自我评价
2013/12/14 职场文书
创业计划书如何编写
2014/02/06 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
年度考核自我鉴定
2014/03/19 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
学历证明范文
2015/06/16 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
Java版 单机五子棋
2022/05/04 Java/Android