iview menu组件手动收起与展开
本文主要介绍menu组件在有子菜单时如何手动的展开与收起。
展开:
在需要展开的地方先设置openname变量如this.openname = ["设置"];
再在$nextTick中调用updateOpened方法
this.$nextTick(()=> {
this.$refs.child1.updateOpened();
});
收起:
一般是用不着手动收起的,在有多个子菜单并设置了accordion为true时,打开别的子菜单会自动将其他子菜单收起,而我的项目只有一个子菜单,当切换到无子菜单的其他路由时就需要将子菜单收起,这是设置openname变量this.openname = [],再在$nextTick中调用updateOpened方法发现根本不管用,网上搜罗各种资源也只有菜单的手动展开,如此只能自己动脑了,查看了组件源码后发现个opened属性,设置有子菜单的元素的opened为false:this.$refs.child1.$children[2].opened = false;
再在$nextTick中调用updateOpened方法
this.$nextTick(()=> {
this.$refs.child1.updateOpened();
});
完美解决
附上源码
<template>
<div class="hello">
<div class="icondiv"></div>
<Menu :active-name="selected" @on-select="menuselect" theme="light" ref="child" style="width:200px":open-names="openname" >
<template v-for="(item, index) in listdata">
<template v-if="item.child&&item.child.length>0">
<Submenu :name="item.name">
<template slot="title">
<Icon :class="item.icon"></Icon>
{{item.name}}
</template>
<template v-for="sub in item.child">
<MenuItem :name="sub.href">{{sub.name}}</MenuItem>
</template>
</Submenu>
</template>
<template v-else>
<MenuItem :name="item.href" >
<div :class="item.icon"></div>
<div class="layout-text">{{item.name}}</div>
</MenuItem>
</template>
</template>
</Menu>
</div>
</template>
<script>
export default {
name: 'menulist',
data () {
return {
listdata:[
{
'name':'公告',
'icon':['ixitong','cipp'],
'href':'#/menu1',
},
{
'name':'解惑',
'icon':['ianswer','cipp'],
'href':'#/menu2',
},
{
'name':'设置',
'icon':['im-extension','cipp'],
'child':[
{
'name':'审核',
'href':'#/submenu1',
},
{
'name':'托管',
'href':'#/submenu2',
},
]
}
],
selected:"#/submenu1",
openname:[],
}
},
methods: {
menuselect (a) {
this.$router.push({path:a.split('#')[1]});
},
watchRoute(){
if(this.$refs.child&&this.$route.name!="submenu1"&&this.$route.name!="submenu2"){
this.openname = [];
this.$refs.child.$children[2].opened = false;
}else{
this.openname = ['设置'];
}
this.$nextTick(()=> {
this.$refs.child.updateOpened();
});
}
},
watch:{
$route(){
this.watchRoute();
}
},
mounted(){
this.watchRoute();
}
}
</script>
iview menu组件手动收起与展开的更多相关文章
- iview Upload组件多个文件上传
使用 iview Upload 上传组件 手动上传 包括单个文件和多个文件 思路:创建一个数组 把需要上传的文件 push到这个数组里面 1.引用组件 2.手动上传,根据官方文档 设置:before ...
- wpf 列表、菜单 收起与展开,通过Grid DoubleAnimation或者Expander实现
菜单收缩有很多种方法具体如何实现还是看个人想法: 第一种通过后台控制收起与展开: 效果图: 代码 : <Grid> <Grid.ColumnDefinitions> <C ...
- GUI的最终选择 Tkinter(七):菜单Menu组件、Menubutton组件、OptionMenu组件
Menu组件 今天说的Menu组件就是一些菜单组件,开始点点点... Tkinter提供了一个Menu组件,可以实现顶级菜单,下拉菜单和弹出菜单.由于底层是代码实现和优化的,所以不太建议通过按钮和其他 ...
- iView - DatePicker组件神坑,如何处理?
最近使用iView - DatePicker组件时发现一些问题,明明设置是正常的日期时间格式,当需要使用这个时间的时候,页面却显示 Fri Jun 09 2017 12:00:10 GMT+0800 ...
- 使用Iview Menu 导航菜单(非 template/render 模式)
1.首先直接参照官网Demo例子,将代码拷贝进项目中运行, 直接报错: Cannot read property 'mode' of undefined. 然后查看官网介绍,有一行注意文字,好吧. 2 ...
- yii2 Menu组件的使用
1.首先引入类 use yii\widgets\Menu; 2.配置组件 <?php echo Menu::widget([ //ul的样式以及相应的属性 'options' => ['c ...
- element-ui tree树形组件自定义实现可展开选择表格
最近做项目遇到一个需求,表格里可以展开,可以选择,大概效果如下图: 一开始是在table组件里找方法,使用了表格的合并方法,效果是实现了,但是表格的多选每次触发时,都会执行好几次,而且没法实现一部分的 ...
- Antd组件库,利用Menu组件模拟一个简单Tree组件
当前工作中,前端的主要技术栈用是vue. 那React怎么办呢?总不至于把他扔在墙角吧! 只能在一些很小的项目上,也只有自己一个前端的时候,悄悄的上React. 当然,React项目UI组件还是最喜欢 ...
- 解决Delphi图形化界面的TEdit、TLable等组件手动拖拽固定大小,但是编译之后显示有差别的情况
经常遇到这样的情况,在我们使用Delphi的可视化工具进行UI设计的时候,我们拖拽TEdit或者Label组件,并且在可视化界面上设置它们的长.宽 但是当我们编译和运行程序的时候,却发现真正显示出来的 ...
随机推荐
- [物理学与PDEs]第2章第1节 理想流体力学方程组 1.2 理想流体力学方程组
1. 质量守恒定律: 连续性方程 $$\bee\label{2_1_2_zl} \cfrac{\p\rho}{\p t}+\Div(\rho{\bf u})=0. \eee$$ 2. 动量守恒定 ...
- Pipeline load and load from git
load https://www.sourcefield.nl/post/jenkins-pipeline-tutorial/ node { // Use the shell to create th ...
- DUMP4 企业级电商项目 —— 对接支付宝扫码支付
延展 <谈谈微信支付曝出的漏洞> [联调 DEMO下载地址]https://docs.open.alipay.com/194/105201/ [内置 一份 说明文档可做参考] [impor ...
- H5——while循环,for循环
[循环结构的步骤] * ① 声明循环变量 * ② 判断循环条件 * ③ 执行循环体(while的{}中的所有代码) * ④ 更改循环变量 * 然后执行② ③ ④ var n=1; // ① 声明循 ...
- 一、Kubernetes系列之介绍篇
•Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境 2.什 ...
- cartographer 点云同步处理
1.点云同步处理的类 RangeDataCollator class RangeDataCollator { public: explicit RangeDataCollator( const st ...
- spring面向切面编程示例(xml配置形式vs@注解形式)
一.xml配置形式 1.在Spring配置文件中增加面向切面配置当调用com.activemq.service.impl.ConsumerServiceImpl接口实现类的任意方法时执行切面类中的方法 ...
- OpenCV3编程入门读书笔记5-边缘检测
一.边缘检测的一般步骤 1.滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能. 2.增强 增强边缘的基础是确定图像各 ...
- Copley-STM32串口+CANopen实现双电机力矩同步
原来有个CANopen的主站卡,现在没了,只有单片机,用单片机来制作一个CANopen的主站卡貌似不是很难,但是需要时间.无奈仔细看了一个Copley的说明,决定采用CAN口+串口来实现之前的功能. ...
- java基础学习总结——面向对象1
目录 一.面向过程的思想和面向对象的思想 二.简单理解面向对象 三.面向对象的设计思想 四.对象和类的概念 五.如何抽象出一个类? 六.类(对象)之间的关系 七.Java与面向对象 八.为什么使用面向 ...