这是一个与 QDialog 和 QMenu 搭配使用的辅助指令。当 DOM 元素或组件绑定了该指令后,点击/触摸该元素时会关闭其最近的父级 QDialog 或 QMenu。
用法
基础用法
关闭多层弹层
您还可以通过为指令传入一个层级数值来关闭多层弹层:
<... v-close-popup="3">content_paste
- 如果值为 0 或布尔值
false,则禁用该指令 - 如果值小于 0,则关闭链路上的所有弹层
- 如果值为 1 或布尔值
true或 undefined,则只关闭最近的父级弹层 - 如果值大于 1,则关闭指定数量的父级弹层(注意:链式 QMenu 只算作 1 层,QPopupProxy 会分隔链式菜单)
注意下方示例中,链式 QMenu(直接嵌套的菜单)不需要指定多个层级。当 v-close-popup 用于链式 QMenu 时,所有直接嵌套的 QMenu 只算作一层。
在下面的示例中,菜单使用了 2 层关闭,这意味着它也会关闭父级的 dialog:
注意下方示例中,内层 dialog 是外层 dialog 的子组件。只有在这种父子关系下,v-close-popup 才能通过设置多层级来同时关闭两个 dialog。如果两个 dialog 是兄弟关系(或其他非父子关系的场景),您需要自行通过 v-model 来控制它们的关闭。