You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js与Flask Jinja2数据渲染冲突:单选框value绑定失效

解决Vue单选框v-for循环中value绑定失效的问题

兄弟,一眼就看出问题在哪了!你在input的value属性里用了双大括号{{item.key}}插值,这在Vue里是行不通的——双大括号只能用来插入文本内容(就像你<span>里的{{item.value}}那样),而HTML元素的属性需要用Vue的v-bind指令(或者简写的冒号:)来绑定响应式数据。

修正后的代码

<p v-for="item in questionDataSet.options" :key="item.key">
  <label>
    <input 
      name="question-data-row" 
      type="radio" 
      v-model="requestData.surveyDetails.answerSelection" 
      :value="item.key" <!-- 这里改用:value绑定数据 -->
    >
    <span>{{item.value}}</span>
  </label>
</p>

额外提示

别忘了给v-for加上:key属性,这是Vue列表渲染的最佳实践。用每个item的唯一标识(比如这里的item.key)作为key,能帮助Vue更高效地追踪DOM元素,避免一些奇怪的渲染bug。

为什么原来的写法失效?

当你写value="{{item.key}}"时,浏览器会把它当作普通的字符串属性值,不会触发Vue的响应式绑定,最终渲染出来的value就是{{item.key}}这个字面量,而不是你期望的item.key对应的数据值。而<span>里的是文本节点,双大括号插值在这里是生效的,所以item.value能正常显示。

内容的提问来源于stack exchange,提问作者Tamaghna Banerjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:18:36