Bou*_*ory 5 vue.js vuejs2 vuetify.js
我有一个v-data-table,用户可以单击任何行并打开一个对话框。在我的 vuetify 对话框里面是一个数据下拉列表。
我想在用户每次单击一行时过滤此数据,并从对话框内的下拉列表中过滤掉用户单击的内容。
这是我的对话:
<v-dialog v-model="edit" max-width="1200" @input="closeDialog()">
<editCompany :isEdit="true"
v-if="showEdit"
:company="selected"
:adminEdit="true"></editCompany>
</v-dialog>
Run Code Online (Sandbox Code Playgroud)
您可以看到我正在传递用户单击的表行中的值。
现在,我需要使用传入的值来过滤下拉列表。挂载的事件只运行一次,所以我里面的逻辑只在点击的第一行时触发。
这是我的editCompany模板内的挂载事件:
mounted: async function () {
this.filterOutResults(); //this is where i do my filtering and it works
},
Run Code Online (Sandbox Code Playgroud)
用户点击的每一行都不会触发安装,所以我不能使用它,除非我可以在关闭时卸载对话框。
我找到了如何在对话框关闭时触发事件,但找不到 vuetify 打开事件。
我如何在每次打开对话框时运行一个函数,以便我可以过滤结果,或者如何在每次关闭时卸载对话框,以便每次都可以运行安装的事件?谢谢
为了将来参考,我将扩展@mynd 评论,这应该是答案:
export default {
data() {
return {
dialogVisible: false,
},
},
watch: {
dialogVisible(visible) {
if (visible) {
// Here you would put something to happen when dialog opens up
console.log("Dialog was opened!")
} else {
console.log("Dialog was closed!")
}
}
},Run Code Online (Sandbox Code Playgroud)
<v-dialog v-model="dialogVisible" max-width="1200" @input="closeDialog()">
<!-- Add code here, according to Vuetify docs -->
</v-dialog>Run Code Online (Sandbox Code Playgroud)
有关更多信息(关于构建v-dialog组件本身),请参阅官方文档
| 归档时间: |
|
| 查看次数: |
5516 次 |
| 最近记录: |