基于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 相关文章推荐
学习ExtJS 访问容器对象
Oct 07 Javascript
将string解析为json的几种方式小结
Nov 11 Javascript
javascript中获取下个月一号,是星期几
Jun 01 Javascript
jquery连缀语法如何实现
Nov 29 Javascript
浅析$.getJSON异步请求和同步请求
Jun 06 Javascript
VueJs与ReactJS和AngularJS的异同点
Dec 12 Javascript
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
把vue-router和express项目部署到服务器的方法
Feb 21 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
Aug 22 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
Jun 10 Javascript
关于layui 弹出层一闪而过就消失的解决方法
Sep 09 Javascript
Vue学习之axios的使用方法实例分析
Jan 06 Javascript
ajax请求前端跨域问题原因及解决方案
浅谈TypeScript 索引签名的理解
JavaScript 反射学习技巧
Oct 16 #Javascript
JS的深浅复制详细
Oct 16 #Javascript
JS 基本概念详细介绍
Oct 16 #Javascript
AJAX实现指定部分页面刷新效果
AJAX实现省市县三级联动效果
Oct 16 #Javascript
You might like
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
Yii分页用法实例详解
2014/12/04 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
js获取select选中的option的text示例代码
2013/12/19 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
Element Input输入框的使用方法
2020/07/26 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
python实现读取命令行参数的方法
2015/05/22 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
新学期班主任寄语
2014/01/18 职场文书
原材料检验岗位职责
2014/03/15 职场文书
司法建议书范文
2014/05/13 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
员工工作表现自我评价
2015/03/06 职场文书
小学生安全保证书
2015/05/09 职场文书
怎样写好工作计划
2019/04/10 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript