javascript - VueJS - 如何处理多组复选框,使用 v-for 呈现
问题描述
我有以下情况。Questions
我从我的后端得到一个列表,每个都Question
包含以下属性:
- ID
- 陈述
- Choices[](字符串类型)。
现在,我正在渲染问题并将它们显示为一个简单v-for
的表单,并且是一组复选框(也用 渲染)。Statement
<p>
choices
v-for
Question Statement 1
[x] choice1
[] choice2
[x] choice3
--------------------
Question Statement 2
[x] choice1
[x] choice2
[] choice3
--------------------
Question Statement 3
[x] choice1
[] choice2
[] choice3
--------------------
我知道如何将一组复选框绑定到给定属性,但这里我没有一组复选框,而是多个,具体取决于从后端获取的问题数量。我想最后提交表单并向后端发送一个 HTTP POST 请求,并给出答案(如下所示):
[
{
"questionId": 1,
"selectedAnswers": [choice1, choice3]
},
{
"questionId": 2,
"selectedAnswers": [choice1, choice2]
},
{
"questionId": 3,
"selectedAnswers": [choice1]
}
]
我的问题是我找不到绑定所有选定选项的方法。如果我选择并排列并将它们绑定到input
最后v-model
一个复选框中,我将选择将覆盖所有内容。我需要以某种方式将所选选项的数组与 questionId 绑定在一起,以便一切都是独一无二的。
你对此有什么线索吗?
非常感谢!
解决方案
在获取它们后,从来自后端的项目创建一个对象:
// presuming the variable holding your backend data is called `data`
let questions = [...data]
for (let question of questions) {
question['selectedChoices'] = []
}
现在使用 questions 数组呈现您的问题,并将每个问题中的复选框绑定到selectedChoices
数组。
推荐阅读
- ios - SwiftUI - 表单中的两个选择器:点击一个在第二个上传播
- sql-server - 将值插入另一个表中的特定行
- r - 如何将天气 API 嵌入到闪亮仪表板中
- python - python - 如何从python中的父类范围访问父覆盖函数?
- docker - Sonarqube 从 7.4-community 升级到 7.9 JVM 错误
- apache-kafka - 使用 spring kafka 的恰好一次语义
- json - 我可以使用powershell获取json中属性的层次结构路径吗?
- c++ - 数字到单词转换器 C++ 编码
- mongodb - Mongo shell 不能通过 kubectl cli 工作
- pytest - pytest 失败,没有回溯或显示代码