HTML
<script src="https://unpkg.com/vue"></script>
<div id="app">
<radio v-model="eventTypeInput" id="et-internal" name="event_type"
:selectedValue="0">internal</radio>
<radio v-model="eventTypeInput" id="et-external" name="event_type"
:selectedValue="1">external</radio>
{{eventTypeInput}}
</div>
的JavaScript
new Vue({
el: '#app',
components: {
radio: {
template: `<div class="control-item">
<input type="radio" autocomplete="off" ref="input"
v-model="model"
:value="selectedValue"
:id="id"
:name="name"
:disabled="disabled">
<label :for="id"><slot></slot></label>
</div>`,
name: 'input-radio',
props: {
disabled: {type: Boolean, default: false},
name: {type: String, default: null},
selectedValue: {default: true}, // this radio value
value: {default: false}, // v-model variable
id: {required: true}
},
computed: {
model: {
get () {
return this.value
},
set (val) {
this.$emit('input', val)
}
}
}
}
},
data () {
return {
eventTypeInput: 'initial value'
}
}
});
我制作了一个与v-model
配合使用的无线电输入组件。
当我点击无线电元素时,通过v-model
绑定的表达式不会改变。
我做错了什么?这是Vuejs的错误吗?
答案 0 :(得分:1)
问题是HTML属性不区分大小写,如果在每个实例中使用selectedValue
(例如)更改selected_value
,它都可以。
答案 1 :(得分:1)