老大说 select 不方便。让我改成 radio 组的样子,然而我是个前端菜鸡(T-T)。跪求大佬解答 Orz
var temp = '<label class="btn btn-default" :for="id">{{ name }}'
+ '<input :id="id" type="radio" :value="id" :checked="checkVal" @change="update"></label>';
Vue.component('radio-tag', {
template: temp,
model:{
prop: 'modelVal',
event: 'change'
},
props: {
id: String,
name: String,
selected: String,
modelVal: ''
},
computed: {
checkVal () {
alert('check');
return this.modelVal = this.id;
}
},
methods: {
update() {
alert('update');
this.$emit('change', this.modelVal);
}
}
});
<div class="btn-group" data-toggle="buttons">
<radio-tag v-for="item in items" :id="item.id" :name="item.name" :selected="s" v-model="s"></radio-tag>
</div>
radio 点击就没有反应, checkVal 和 update 都没进。更没有把点的 radio 值绑定到 s 上了。