如下代码所示的菜单:
<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());
文章评论