Element-UI的Tree树形组件控制全部展开和全部折叠

前言

一、在v-if中使用

在使用Tree组件时,需求是可以动态切换全部展开和全部折叠的功能,寻找到了解决方案,但是屡次没有成功,这时,我一直怀疑这个方案的可行性,以为是这个方案有问题,最终才知道,其实是因为我的Tree是在Element-UI的Dialog组件中使用的缘故,详见问题原因,也就是说是因为外层组件Dialog使用了v-if的原因,以致获取不到$refs的缘故,如下图所示,是Dialog的源码:

如图所示,确实是使用了v-if,而v-showv-if的区别,可以看这篇文章VUE中的v-if与v-show

实现代码:

// tree为Tree组件的ref值,isexpand为true或false
this.$nextTick(() => {
    for(var i=0;i<this.$refs.tree.store._getAllNodes().length;i++){
           this.$refs.tree.store._getAllNodes()[i].expanded=this.isexpand;
        }
});

二、在v-for中使用

v-for中使用Tree组件时,就会发现this.$refs.tree显示报错,并没有获取到。这是因为:


所以,要想在v-for中正确获取到this.$refs.tree,需将其改为this.$refs.tree[0]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录介绍 1.简单用法 2.AlertDialog源码分析2.1 AlertDialog.Builder的构造方法...
    杨充211阅读 4,900评论 1 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,160评论 1 45
  • startActivity 最终调用startActivityForResult 方法, 关注 mParent==...
    L_Xian阅读 2,206评论 0 0
  • 徒手金刚阅读 1,384评论 2 2
  • 此时此刻,007第68班的开班仪式刚刚结束,作为全程参与还是第五小组的组长的我,忍不住想要记录一下这美好的相...
    慧慧2018阅读 2,750评论 7 3