【发布时间】:2018-06-13 16:39:30
【问题描述】:
在设置输入单选和 v-model 的值时,我遇到了 VueJS 的问题。我不明白为什么我不能为输入动态设置值并使用模型来检索用户选择的输入。
在代码中更容易理解:
export default {
props: ["question", "currentQuestion"],
data() {
return {
answer: undefined
}
},
computed: {
isCurrent() {
return this.currentQuestion && this.currentQuestion.id == this.question.id;
}
},
methods: {
groupName(question) {
return 'question_id_' + question.id
},
inputType(question) {
if (question.question_type_id == 2) return "checkbox";
return "radio";
}
},
mounted() {
console.log('Component mounted.')
}
}
<template>
<ul v-if="question.question_type_id != 4">
<li v-for="option in question.options" :key="option.id">
<div class="form-group">
<label>
<input v-model="answer" :value="option.id" :type="inputType(question)"
:name="groupName(question)" />
{{option.option}}
</label>
</div>
</li>
</ul>
</template>
因此,如果有 4 个选项,用户会看到 4 个单选按钮,每个单选按钮都有“option.id”作为值,当用户单击单选按钮时,模型“答案”将被填充具有该值。
现在,当我尝试编译此文件时,我收到以下错误消息:
- :value="option.id" 在同一元素上与 v-model 冲突,因为后者已经在内部扩展为值绑定
那么,任何人都可以帮助我了解如何为输入动态设置值并关联模型以在选择输入时检索值?
顺便说一下,这个页面上的 VueJS 文档准确地说明了我想要做的事情: https://vuejs.org/v2/guide/forms.html
非常感谢任何帮助。
【问题讨论】:
标签: javascript vue.js vuejs2