vue.js - 如何在单击子组件上存在的按钮时打开父组件中存在的弹出模式?
问题描述
我有一个父子组件
父组件:包含模态
子组件:包含用于切换模式的按钮
如何在单击子组件中存在的按钮时打开模式
打开模态子组件的按钮
<button class="btn btn-primary" @click="openModal()">Click to Open</button>
父组件中的模态
<b-modal
id="bv-modal-lead"
header-class="py-2 bg-primary text-white"
body-class="p-0"
hide-footer
style="z-index:9999;"
size="md"
no-close-on-esc
no-close-on-backdrop
header-close-variant="light">
<template v-slot:modal-title>Required Details</template>
<div class="d-block p-0">
<ChildCopmonent
@openModal="clickToOpen"/>
</div>
</b-modal>
//父母
<script>
export default {
methods:{
openModal(){
this.$bvModal.show('bv-modal-lead')
}
}
}
</script>
如何通过单击子组件中存在的按钮打开父模式
解决方案
您可以在子组件中发出事件并在父组件中获取它。
所以在子组件中应该有事件名称在@click="$emit('openModalEvent')"
哪里openModalEvent
(它可以是openModal
但记住它是一个事件而不是一个方法)。
openModalEvent
现在您可以在父组件中侦听事件 -要调用的方法@openModalEvent="openModal"
在哪里。openModal
孩子
<button class="btn btn-primary" @click="$emit('openModalEvent')">Click to Open</button>
家长
<b-modal
id="bv-modal-lead"
header-class="py-2 bg-primary text-white"
body-class="p-0"
hide-footer
style="z-index:9999;"
size="md"
no-close-on-esc
no-close-on-backdrop
header-close-variant="light">
<template v-slot:modal-title>Required Details</template>
<div class="d-block p-0">
<ChildCopmonent @openModalEvent="openModal" />
</div>
</b-modal>
推荐阅读
- angular - 从源“http://localhost:4200”访问“http://localhost:...”处的 XMLHttpRequest 已被 CORS 策略阻止
- python - 使用 Pyaudio 录制后对 FFT 进行归一化
- c# - 将数据添加到一个表中会将重复数据添加到关系表中
- mathematical-optimization - 使用纯切割平面方法求解 MIP,并查看最终的 LP 松弛?
- xml - XML 'name' 属性和带有 SelectNodes 的 XML 变量类型
- python - 如何从mysql表中只显示输入的生日名称
- angular - 带有茉莉花弹珠的 Ngrx 测试选择器:预期 $.length = 1 到等于 2
- mapping - 处理映射中名称相同但表不同的字段
- angular - 基于Angular 6中选中的复选框调用两种不同方法的一个按钮
- macos - 我的堆栈程序的第一个变量是什么?