iview中的Menu菜单 当父级的子菜单只有一个的时候 就不显示父级菜单了?怎么解决呢?我想都显示

clipboard.png

clipboard.png

=======================

<style lang="less">

@import '../styles/menu.less';

</style>

<template>

<Menu ref="sideMenu" :active-name="$route.name" :open-names="openNames" :theme="menuTheme" width="auto" @on-select="changeMenu">
    <template v-for="item in menuList">
        <MenuItem v-if="item.children.length<=1" :name="item.children[0].name" :key="'menuitem' + item.name">
            <Icon :type="item.children[0].icon || item.icon" :size="iconSize" :key="'menuicon' + item.name"></Icon>
            <span class="layout-text" :key="'title' + item.name">{{ itemTitle(item.children[0]) }}</span>
        </MenuItem>

        <Submenu v-if="item.children.length > 1" :name="item.name" :key="item.name">
            <template slot="title">
                <Icon :type="item.icon" :size="iconSize"></Icon>
                <span class="layout-text">{{ itemTitle(item) }}</span>
            </template>
            <template v-for="child in item.children">
                <MenuItem :name="child.name" :key="'menuitem' + child.name">
                    <Icon :type="child.icon" :size="iconSize" :key="'icon' + child.name"></Icon>
                    <span class="layout-text" :key="'title' + child.name">{{ itemTitle(child) }}</span>
                </MenuItem>
            </template>
        </Submenu>
    </template>
</Menu>

</template>

<script>
export default {

name: 'sidebarMenu',
props: {
    menuList: Array,
    iconSize: Number,
    menuTheme: {
        type: String,
        default: 'dark'
    },
    openNames: {
        type: Array
    }
},
methods: {
    changeMenu (active) {
        this.$emit('on-change', active);
    },
    itemTitle (item) {
        if (typeof item.title === 'object') {
            return this.$t(item.title.i18n);
        } else {
            return item.title;
        }
    }
},
updated () {
    this.$nextTick(() => {
        if (this.$refs.sideMenu) {
            this.$refs.sideMenu.updateOpened();
        }
    });
}

};
</script>

阅读 7k
2 个回答

clipboard.png

这样就可以了

图片描述

是不是这个v-if

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题