Vuetify 使用自定义逻辑打开对话框

Posted

技术标签:

【中文标题】Vuetify 使用自定义逻辑打开对话框【英文标题】:Vuetify open dialog with custom logic 【发布时间】:2020-07-25 02:26:50 【问题描述】:

我想在单击按钮时打开一个对话框。但我需要在此事件之前和之后执行逻辑。如何做到这一点?

我尝试过的:

模板

<v-dialog v-model="dialog" >
  <template v-slot:activator=" on ">
    <v-btn color="primary" @click="openDialog">Dialog</v-btn>
  </template>
  <v-btn>lol</v-btn>
</v-dialog>

脚本

data() 
    return  dialog: false ;
  ,
  methods: 
    openDialog() 
      this.dialog = true;
    
  

这似乎是一个糟糕的解决方案,因为所有的 v-slot 仍然在那里。

【问题讨论】:

两者都有效。除此之外的任何内容都是基于意见的,因此这里是off-topic。请阅读How to Ask。 @tao 如何在第二个示例中添加逻辑? 这是一个完全不同的问题。确保一次只问一个问题,以便任何可能的答案对任何有类似问题的人都有帮助。如果您提出多个问题,您的问题和任何可能的答案对未来用户的帮助往往会降低。 好吧,平心而论,这个问题 离题。我会隐藏它,编辑它以成为主题,然后重新打开它。考虑到它已经有了答案,您可以简单地发布一个新答案。由你决定。但是,如果你不关闭它,如果它保持当前形式,社区就会关闭它。你基本上不能在 Stack Overflow 上询问个人喜好。甚至不涉及编码个人偏好。 默认情况下,激活器插槽内的按钮将在单击/点击/聚焦+输入等时打开模式。如果您将其他任何内容绑定到该按钮,它也会运行。见this example。如果您想在自定义组件逻辑上打开模式,请不要使用激活器。使用自定义 fn,运行您的逻辑,并且仅在满足自定义逻辑时才以编程方式打开模式。 【参考方案1】:

在第一个示例中,您实际上不需要使用 v-slot:activator="on" - &lt;v-dialog&gt; 标签可以在没有它的情况下激活 (as described in the "Without activator" example here)。

但是,对我个人而言,推荐的方法是您提供的第二个示例 - 使用 v-on 触发对话框的示例,因为它无需编写额外函数来设置您的 @987654325 之一即可处理打开对话框@变量。

【讨论】:

以上是关于Vuetify 使用自定义逻辑打开对话框的主要内容,如果未能解决你的问题,请参考以下文章

用户登录应用程序后如何打开 vuetify 对话框

Vue Vuetify 打开对话框组件 onclick

重置 Vuetify 表单验证

Vuetify 对话框在重新打开时重置内容

无法在 setTimeout 回调中以编程方式打开 Vuetify 对话框

关闭依赖于 Vuetify 中存储的数据的对话框