javascript - 在父级上打开 Vue 对话框(模态)
问题描述
首先,我已经阅读了这篇文章,但它对我没有帮助(或者我无法解决这个问题)
我有一个组件,它是Vuetify Modal (ModalTurno.vue)。我正在尝试从底部导航(bottomNav.Vue)(也是一个组件)中的按钮打开它。
我什至能够做到这一点!但它在底部导航 div 上打开。所以我想在我的主 vue (Turno.Vue)上打开它,这样我就可以看到整个模式。这让我发疯
Vuetify 模态(ModalTurno.Vue):
<template>
<v-dialog v-model="dialog" persistent max-width="500px" >
<v-card>
<v-card-title>
<span class="headline">User Profile</span>
</v-card-title>
</v-card>
</v-dialog>
</template>
<script>
export default {
data: () => ({
dialog: false
})
}
</script>
底部导航(bottomNav.Vue)(按钮所在的位置):
<template>
<v-card height="200px" flat>
<v-bottom-nav
:value="true"
color="indigo"
fixed
>
<v-btn
dark
flat
value="favorites">
<span>Agregar turno</span>
<v-icon>add_circle</v-icon>
</v-btn> <!--THIS IS THE BUTTON TO OPEN THE DIALOG -->
</v-bottom-nav>
</v-card>
</template>
<script>
export default {
name: 'header',
data () {
return {
bottomNav: 'recent'
}
}
}
</script>
Turno.Vue(应显示模态的位置):
<template>
<div>
<bottomNav> </bottomNav>
<modalTurno> </modalTurno>
</div>
</template>
<script>
import bottomNav from "./components/bottomNav.vue";
import modalTurno from "./components/ModalTurno.vue";
export default {
name: 'turno',
components: {
bottomNav,
modalTurno
}
}
</script>
感谢所有花时间阅读这篇文章的人!
解决方案
你可以这样做:
在Turno.vue
- 添加 ref="modalTurno" 到(使该组件可通过 this.$refs.modalTurno -访问子组件实例和子元素访问)
在底部Nav.Vue
- 将 @click="$parent.$refs.modalTurno.dialog = true" 添加到 v-btn(这将更新 modalTurno 中的对话框)
推荐阅读
- vba - Word 自动化 (VBA):邮件合并富文本格式
- c++ - 类动态数组错误
- css - 将导航栏菜单与底部中心对齐
- java - 在 if 中使用 && 时出现此错误
- reactjs - 从服务唤醒器发送消息以响应某些不支持广播频道的浏览器中的组件
- django - Django 2.2.4 -- 无法让 ORM 模仿“group by”SQL 函数并获得预期结果
- drop-down-menu - 将 DropDownList 值获取到 POST 方法中
- javascript - Node js Fetch发送空正文
- c++ - 我有两棵二叉树。我想在不更改输入树的情况下深度复制两个二叉树的结果
- python - 使用 numba 原子操作函数时遇到问题 (cuda.atomic.compare_and_swap)