我使用的是Quasar的Q标签,我想在点击其他Q标签时阻止标签切换,直到显示自定义弹出窗口,在弹出确认后,标签switch 应该继续呈现.我已经搜索了官方文件,但我还没有找到合适的解决方案.有没有办法满足我的要求?

现在的问题是,当你点击标签时,它们就会切换.尽管我已经触发了阻止弹出窗口,但数据已经呈现.

我对造成的任何混乱深表歉意.英语不是我的主要语言.如果你有任何问题,请告诉我.

诚挚的问候.

推荐答案

如果侦听<q-tabs>元素上的@update:model-value事件,它不会自动为其模型分配新值,因为现在您控制了事件发生时发生的事情.您还需要使用:model-valueprops 进行单向绑定,而不是使用v-Model的双向绑定.

<q-tabs
  @update:model-value="verifyTab"
  :model-value="currentTab"
>

使用一种方法,您可以通过以下方式响应事件:

  1. 记住刚刚点击了哪个选项卡,这样您就可以在以后决定是否真正切换到它.
  2. 打开弹出对话框
const dialog = ref(false)
const currentTab = ref('initialTab')
const clickedTab = ref()

function verifyTab(tab) {
  clickedTab.value = tab // remember which tab is clicked
  dialog.value = true // open dialog
}

然后,对话框可以根据用户的交互来设置该选项卡.

<q-dialog v-model="dialog">
  ...
  <q-btn label="OK" @click="currentTab = clickedTab" v-close-popup />
</q-dialog>
  

jsfiddle example

Javascript相关问答推荐

为什么它无法识别日期 Select 器上的任何 Select ?

如何从defineExpose访问数据和方法

如何在不使用类型化数组的情况下将32位浮点数按位转换为整值?

设置默认值后动态更新japbox或调色板

如何编辑代码FlipDown.js倒计时?

单击更新页面的按钮后,页面刷新;测试/断言超时,有两个标题,但没有一个标题

使用续集和下拉栏显示模型属性

我可以使用CSS有效地实现最大宽度=100%和最大高度=100%,而无需父母有明确的/固定的宽度和高度,替代方法吗?

格式值未保存在redux持久切片中

useNavigation更改URL,但不呈现或显示组件

docx.js:如何在客户端使用文档修补程序

Phaser 3 console. log()特定游戏角色的瓷砖属性

如何在Javascript中使用Go和检索本地托管Apache Arrow Flight服务器?

如何避免页面第一次加载时由于CSS样式通过JavaScript更改而出现闪烁

try 使用javascript隐藏下拉 Select

如何将未排序的元素追加到数组的末尾?

让chart.js饼图中的一个切片变厚?

如何根据查询结果重新排列日期

MongoDB中的嵌套搜索

用Reaction-RT-Chart创建实时条形图