【发布时间】:2020-07-25 02:26:50
【问题描述】:
我想在单击按钮时打开一个对话框。但我需要在此事件之前和之后执行逻辑。如何做到这一点?
我尝试过的:
模板
<v-dialog v-model="dialog" width="400">
<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,运行您的逻辑,并且仅在满足自定义逻辑时才以编程方式打开模式。
标签: vue.js vue-component vuetify.js