目的: 单选列表里的某一项被选中时,数据相应地变化; 被取消选择时还原。
对于radio(相同的name组)来说,是选中另外一个radio;
类似地,其他表单元素在循环中,v-model的值如何确定呢,如果安装这种思路。
(见笑,以下代码无法实现,循环中的$index,在v-modle貌似无效)
<ul id="test">
<li v-for="item in address">
<label>
<input type="radio" name="address" v-model="address_$index" value="true" />
{{address_$index ? "selected" : ""}}
<!-- 其他数据变化,当被选中或取消 -->
<span>{{item.name}}</span>
</label>
</li>
</ul>
new Vue({
el: "#test",
data: {
"address": [
{ "name": "test#1"},
{ "name": "test#2"},
{ "name": "test#3"},
{ "name": "test#4"}
]
}
})
具体执行效果 见 codepen 代码示例。
另外一个想法是在input上绑定事件,如 v-on:change="selecteItem($index,$event)"
求万能的 给一个思路。
粗略写了个DEMO,不知道是不是你想要的:https://jsfiddle.net/rainwsy/1247s0ow/