javascript - Vue:如何根据 RadioButton 选择显示不同的图像
问题描述
如果使用 Vuejs 选择了单选按钮,我将面临一个问题,我想显示不同的图像。它目前只显示错误状态的图像,因为我似乎无法以我尝试的方式检索按钮的状态。这是一个带有两个按钮的示例:
<template>
<div id="choose-route">
<label>
<input type="radio" name="Radio" id="choice1"
v-on:change="someMethodOne"
/>
<img
:src="checked ? 'icon_checked.png' : 'icon.png'"
/>
</label>
<label>
<input type="radio" name="Radio" id="choice2"
v-on:change="someMethodTwo"
/>
<img
:src="checked ? 'different_icon_checked.png' : 'different_icon.png'"
/>
</label>
</div>
</template>
<script>
export default {
methods: {
someMethodOne () {
// does something
},
someMethodTwo () {
// does another thing
}
}
}
</script>
<style>
</style>
如何根据单选按钮的选中状态更改图像?我已经使用 CSS 完成了它,但是由于我使用递归组件,这导致了另一个问题,这就是我现在在这里的原因。
解决方案
使用v-model
. 当值改变时,你也可以watch
用来做一些事情。checked
Vue.js 的网站上有这个确切的例子。
https://vuejs.org/v2/guide/forms.html#Radio
new Vue({
el: "#app",
data: {
checked: null
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<input type="radio" id="one" value='One' v-model="checked">
<label for="one">Option one</label>
<br>
<input type="radio" id="two" value="Two" v-model="checked">
<label for="two">Option two</label>
<br>
<span>Checked: {{ checked }}</span>
<br>
<span v-if="checked === 'One'">One is checked!</span>
<span v-else-if="checked === 'Two'">Two is checked!</span>
</div>
推荐阅读
- android - 如何让 Android UI 在每个屏幕上看起来都完全一样?
- vue.js - vue router next() 函数在 router.beforeEach 中的 Promise 中不起作用
- c++ - g++-8 和更早版本之间的奇怪行为
- arduino - 需要帮助将 SparkFun ESP8266 连接到 URL
- smartcard - 带有波兰电子身份证的无响应卡
- bash - 为什么“ls -1 $fl | wc -l”在我的 for 循环中没有返回值 0?
- c# - 如何在 C# 中使用 Cast 修复转换错误?
- python - 如何在 DataFrame 列中展开列表?
- python - 为什么 pandas.to_numeric 会产生列表列表?
- sharepoint-2016 - SharePoint 中禁用的 AD 用户