今天解决了一个非常尴尬的问题,纠结了整整半个月,最后还是被自己没有仔细看文档给打败了。
具体的事情是这样的,我们的需求是实现可复选的树结构,因为要适配IE8,纠结了很久之后最后决定使用z-tree,适配性又高速度又快。数据是后台接口动态获取的,利用取出来的数据进行树的初始化,初始化结束后默认展开根节点,再然后问题就来了,不管怎么弄根节点数据就是展不开,然后就开始了我的漫长调查过程…
下面是我的节点展开代码

FormioUtils.getDataFromUrl(Formio.getBaseUrl() + initPath,{},'post',''
).then(function (res) {if(res.errorcode == "0"){// 初始化ztree组件var zTreeObj = $.fn.zTree.init($("#depTree"), setting, res.data);zTreeObj.expandNode(res.data[0],true, false, false);} else {FormioUtils.updateMessage({type: 'warning',text: res.msg,time: 2000}, Messager);}
});

整个调查问题的辛酸历程

  1. 最开始怀疑是参数配置问题,然后各种更改配置的true,false,然而没有任何作用
  2. 怀疑拼写错误,又从官网上重新copy了一遍源码,发现没有任何变化
  3. 尝试使用expandAll方法,发现可行,怀疑是expandNode方法使用的问题,
  4. 尝试在单击节点数据时使用expandNode方法测试无问题,然后我就纠结是不是树组件初始化没有结束我就展开节点,因此才不执行失效的,所以就在初始化树结构之后加了延迟,然后实测失败…
  5. 然后该问题就搁置了…
  6. 经过了半个月的主体功能开发结束之后,我回首又看这个问题,在看完官方文档上了个厕所回来之后,茅塞顿开…
  7. 下面是官方文档说明,问题点我重点圈出来了,告诫自己以后一定要认真看文档,然后去个厕所,问题可能就解决了~~
  8. 问题原因分析:
    官方其实有红字标明【请通过 zTree 对象执行此方法】,所以从后台取出来的数据不能直接使用,需要先通过主key从树结构中取出当前节点数据,然后再执行expandNode方法就可以了。
    下面是修改后的代码!!!
FormioUtils.getDataFromUrl(Formio.getBaseUrl() + initPath,{},'post',''
).then(function (res) {if(res.errorcode == "0"){// 初始化ztree组件var zTreeObj = $.fn.zTree.init($("#depTree"), setting, res.data);var node = zTreeObj.getNodeByParam("id",res.data[0].id,null);zTreeObj.expandNode(node,true, false, false);} else {FormioUtils.updateMessage({type: 'warning',text: res.msg,time: 2000}, Messager);}
});

angular中使用z-tree初始化之后,展开根节点不生效相关推荐

  1. z tree 如何把选中的节点保存为标准的json格式_为什么MongoDB使用B-Tree?

    除了 B+ 树,你可能还听说过 B 树. B- 树,实际上, B- 树就是 B 树,英文翻译都是 B-Tree ,这里的 "-" 并不是相对 B+ 树中的 "+" ...

  2. 2020-11-05 关于前端‘古董‘dojo的树结构如何默认展开根节点

    在工作中对公司的老平台进行维护中遇到了统一平台选择区域树样式统一的问题,自己在网上搜索了好多但也没有找到合适的方法,直到找公司前辈请教后解决了这个问题.这里就把这个比较久远的前端问题和大家分享一下: ...

  3. Polygon zkEVM中的Merkle tree

    1. 引言 前序博客有: Merkle tree及其在区块链等领域的应用 以https://github.com/0xPolygonHermez/pil-stark为例,Polygon zkEVM中实 ...

  4. LayUi 树形组件tree 实现懒加载模式,展开父节点时异步加载子节点数据

    LayUi框架中树形组件tree官方还在持续完善中,目前最新版本为v2.5.5 官方树形组件目前还不支持懒加载方式,我自己修改了下最新源码tree.js,简单粗暴的方式支持懒加载模式.(Ps:最新更新 ...

  5. Mysql 索引 总结 —— 概述 || 索引优势劣势|| 索引结构(索引是在MySQL的存储引擎层中实现的)|| BTREE 结构||B+TREE 结构||MySQL中的B+Tree||索引分类

    索引概述 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序). 在数据之外,数据库系统还维护者满足特定查找算法的数据结构, 这些数据结构以某种方式引用(指向 ...

  6. Angular中实现动态路由跳转并传递参数

    场景 Angular介绍.安装Angular Cli.创建Angular项目入门教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  7. Angular中实现路由跳转并通过get方式传递参数

    场景 Angular介绍.安装Angular Cli.创建Angular项目入门教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  8. 消解原理推理_什么是推理统计中的Z检验及其工作原理?

    消解原理推理 I Feel: 我觉得: The more you analyze the data the more enlightened, data engineer you will becom ...

  9. angular中的MVVM模式

    在开始介绍angular原理之前,我们有必要先了解下mvvm模式在angular中运用.虽然在angular社区一直将angular统称为前端MVC框架,同时angular团队也称它为MVW(What ...

最新文章

  1. Tarjan无向图连通性
  2. MDNS的漏洞报告——mdns的最大问题是允许广域网的mdns单播查询,这会暴露设备信息,或者被利用用于dns放大攻击...
  3. linux grep sed awk
  4. 国内首本免费深度学习书籍!还有人没Get么?
  5. chrome控制台如何把vw显示成px_你可能不知道的chrome调试技巧
  6. 从lambda表达式看final关键字
  7. android 隐藏所有 fragment,Android 隐藏Fragment
  8. linux源码头文件_您必须在2020年尝试的十大最佳Linux码头
  9. Oracle数据库新增字段
  10. 微信手机端调试抓包总结与问卷星手机端的自动化
  11. 钢铁侠机器人公仔_自己再演一遍复联!优必选钢铁侠 MK50 机器人评测
  12. IFD-x 微型红外成像仪探测距离说明
  13. 计算机主页为什么打不开怎么办,为什么我的电脑腾讯主页打不开
  14. css画一个卡通动画
  15. 智能扫地机器人哪个品牌好?最受欢迎排行榜前十名
  16. foreach求和的效率和连接mysql的sum求和的效率
  17. 3060笔记本推荐产品,游匣G15首当其冲
  18. 计算机音乐数字乐谱fade,superpads数字谱faded音乐包
  19. 如何用python编写抢购程序源码_Python实现淘宝秒杀聚划算抢购自动提醒源码
  20. quilt命令使用介绍

热门文章

  1. Linux使用sendmail发送邮件
  2. 初识网络流(EK and Dinic 模板)
  3. ESFramework介绍之(28)―― Udp组件
  4. JSK-9 元素移除【入门】
  5. HDU4857 逃生【拓扑排序】
  6. Bailian4077 出栈序列统计【卡特兰数】(vijos P1122)
  7. CCF NOI1007 计算余数
  8. Graphviz样例之集群流程图
  9. advanced ip scanner —— 局域网下 ip 及设备的扫描
  10. ubuntu 分屏工具