iview4.x代码动态更新当前激活的菜单项或展开的submenu子菜单的方法

2022-09-04 485点热度 0人点赞 0条评论

如下代码所示的菜单:

<Menu mode="horizontal" :active-name="activeMenu" ref="menu">
    <MenuItem name="menu1">
        <Icon type="ios-paper" />
        内容管理
    </MenuItem>
    <MenuItem name="menu2">
        <Icon type="ios-people" />
        用户管理
    </MenuItem>
</Menu>

当我们代码中修改activeMenu="menu2"的时候,因为并不是双向绑定的,所以当前选中的menu并不会实时更新,看文档也没有v-model 双向绑定数据。

不过可以在代码中调用menu的updateActiveName方法(需要使用

$nextTick

调用),如下:

this.activeMenu = "menu2";
this.$nextTick(()=> this.$refs['menu'].updateActiveName());

同理,如果要修改展开的子菜单项目:

<Menu active-name="1-2" :open-names="openMenuNames" ref="menu">
    <Submenu name="1">
        <template slot="title">
            <Icon type="ios-analytics" />
            Navigation One
        </template>
        <MenuGroup title="Item 1">
            <MenuItem name="1-1">Option 1</MenuItem>
            <MenuItem name="1-2">Option 2</MenuItem>
        </MenuGroup>
        <MenuGroup title="Item 2">
            <MenuItem name="1-3">Option 3</MenuItem>
            <MenuItem name="1-4">Option 4</MenuItem>
        </MenuGroup>
    </Submenu>
    <Submenu name="2">
        <template slot="title">
            <Icon type="ios-filing" />
            Navigation Two
        </template>
        <MenuItem name="2-1">Option 5</MenuItem>
        <MenuItem name="2-2">Option 6</MenuItem>
        <Submenu name="3">
            <template slot="title">Submenu</template>
            <MenuItem name="3-1">Option 7</MenuItem>
            <MenuItem name="3-2">Option 8</MenuItem>
        </Submenu>
    </Submenu>
</Menu>

修改菜单项如下代码:

this.openMenuNames = ['2'] //动态改变展开的subMenu子项
this.$nextTick(()=> this.$refs['menu'].updateOpened());

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论