javascript - 使用 v-if 隐藏和显示元素
问题描述
我有一个单选按钮,如果该人选择“是”,我想渲染一个额外的 div。如果选择了“是”,然后他们选择了“否”,我想再次隐藏该 div,我尝试使用 v-if 和带有 @click 的触发器,但它不起作用。我做错了什么?
<b-row>
<b-col cols="6">
<b-form-group>
<label>Would you like to show the div?</label>
<b-form-radio name="asociado" id="asociado" @click="asociado = true">Yes</b-form-radio>
<b-form-radio name="asociado" id="noasociado" @click="asociado=false">No</b-form-radio>
</b-form-group>
</b-col>
</b-row>
<b-row v-if="asociado">
<h1>hi</h1>
</b-row>
<script>
export default {
data(){
return{
asociado: false,
}
}
}
</script>
解决方案
问题是b-radio-input
组件的创建者没有发出click
事件。如果这是 BootstrapVue,如建议的那样,您可以在此处查看它们发出的事件。
有一些解决方法。
改为使用
@change
事件<b-form-radio name="asociado" id="asociado" @change="asociado = true">Yes</b-form-radio> <b-form-radio name="asociado" id="noasociado" @change="asociado = false">No</b-form-radio>
使用
v-model
andvalue
(我建议这个)<b-form-radio name="asociado" id="asociado" :value="true" v-model="asociado">Yes</b-form-radio> <b-form-radio name="asociado" id="noasociado" :value="false" v-model="asociado">No</b-form-radio>
.native
在点击事件上使用修饰符。<b-form-radio name="asociado" id="asociado" @click.native="asociado = true">Yes</b-form-radio> <b-form-radio name="asociado" id="noasociado" @click.native="asociado = false">No</b-form-radio>
b-radio-group
按照@user1538301 的建议使用该组件。
推荐阅读
- javascript - 来自服务器 URL 的 CSV 文件未下载
- python - Python matplotlib为网格规范设置图例的背景矩形大小
- python-3.x - 读取 csv 文件时出现问题
- python - django csrf 令牌:CSRF 令牌丢失或不正确
- selenium - Allure 报告返回“192.168.0.18 没有发送任何数据”。
- reactjs - 将带有 refs 的原生渲染项反应到 textinput
- apache-spark - SPARK_LOCAL_DIR 和 SPARK_WORKER_DIR 不同
- html - 右侧的浮动元素
- android - 澄清 LiveData 在 ViewModels 中的强引用
- php - Laravel 8 和 livewire - 表格行中的单独项目