2
我有以下HTML标记的自定义单选按钮部件:Vue.JS定制单选按钮组件需要点击两次
<div id="app">
{{message}} - {{sex}}
<radio value="m" v-model="sex" name="sex">Male</radio>
<radio value="f" v-model="sex" name="sex">Female</radio>
</div>
组分(和应用)定义如下:
Vue.component('radio', {
model : {
prop:'checked',
event:'change'
},
props : {
value:null,
name:String
},
data :() => ({
val:''
}),
methods : {
update (e) {
this.$emit('change',e.target.value);
}
},
template:'<div><input :value="value" :name="name" type="radio" v-model="val" @change="update"><slot></slot></div>'
})
var app = new Vue({
el: '#app',
data: {
message: 'selected:',
sex:''
}
})
它正确切换单选按钮(大部分)。
问题:为了做到这一点,我必须点击男性单选按钮两次。我希望只能点击一次来切换它们。也许我没有正确使用描述here的属性model
?
我看到了this的问题,但它使用了较旧的Vue(它没有model
属性),我不想在父级上捕获@change(整个构想背后的单独组件是抽象为逻辑是可能的)
更新:对于任何有兴趣here是解决由于@thanksd
是的,我推翻了解决方案。谢谢! :) – andrei