ps:需求是不点击menu,但触发某一个别的方法要打开指定的子目录。
解决方法:
当指定的方法被触发时,首先在改变menu组件绑定的:active-name
值,然后 在nextTick
调用updateOpened
、updateActiveName
两个方法。
<Menu :active-name="activeName" ref="menuRef" :theme="theme" :open-names="[openMenu]" @on-select='menuSelect' width='200' accordion>
</Menu>
方法:
watch: {
'routerValue' (val) {
this.activeName = val
this.$nextTick(() => {
if (val === '/uCenter/account') {
this.$refs.menuRef.updateOpened();
this.$refs.menuRef.updateActiveName();
}
})
}
以上。
ps:如果menu菜单多于一级目录,刷新页面后继续打开指定子目录。
解决方法:
active-name
和open-names
属性分别对应“激活菜单的 name 值”和“展开的 Submenu 的 name 集合”,浏览器刷新后将这两个属性重新在生命钩子中赋值即可。但是要确保Submenu
具有name
属性,如下。
<Submenu name="personalBilling"></Submenu>