vue.js - 在vue js中如何使用通过插槽呈现的复选框调用子组件方法
问题描述
我有一个父组件:
<my-component>
<template v-slot:myslot>
<b-form-group
label="SlotEG"
label-for="sltLbl"
label-class="font-weight-bold pt-0"
>
<b-form-checkbox
:id="myId"
:name="myName"
></b-form-checkbox>
</b-form-group>
</template>
<my-component>
在我的子组件中,我有方法,我需要在单击复选框以捕获复选框事件时调用该方法。
<template>
<b-col cols="3" v-if="hasMySlot()">
<slot name="myslot"></slot>
</b-col>
</template>
<script>
export default {
methods:{
myMethod() {
alert("Hi")
}
}
}
</script>
解决方案
使用作用域插槽传递方法:
<!-- MyComponent -->
<slot name="myslot" :myMethod="myMethod" />
然后你可以为传递的方法解构 slot 属性,并将其绑定到复选框的处理程序:
<!-- Parent -->
<my-component>
<template v-slot:myslot="{ myMethod }">
...
<b-form-checkbox @checked="myMethod" />
</template>
</my-component>
推荐阅读
- python - Keras:rescale=1./255 vs preprocessing_function=preprocess_input - 使用哪一个?
- node.js - Mongodb图集没有连接
- javascript - 数据读取后打开或弹出新页面 id = 1 自动不刷新 - PHP & Javascripts
- python - 连接 dask 数据帧和 pandas 数据帧
- javascript - 解析查询从基于另一个关系的关系中排除对象
- java - 我有一个程序,我需要用户被询问是否要继续并每次都添加到总和中
- mysql - 按类别显示 MySQL 8 中的前 N 个分数且不重复
- ios - AudioKit:从 Podfile 的开发分支中提取
- python - 从嵌套字典中提取值出现的次数
- javascript - 先前隐藏的 div 上的按钮不起作用