如何将无线电输入字段存储在嵌套的V-For循环中
我想将输入数据存储在嵌套v-for 的问题上是当我获得第二个v-for索引时,索引号不是唯一的,下面的代码是我的嵌套的v-for循环第一个循环是为了获取问题,第二个循环是为了获得
<div
v-for="(exam, index) in FilteredExams[0].Questions"
v-show="index < this.stageNumber"
:class="{
dspnone:
DspLastItem &&
index < this.stageNumber - this.StageOnChange,
}"
:key="index + RandomKey()"
class="flex flex-col gap-5"
>
<!-- questions -->
<p class="text-secondary-600 font-bold">{{ exam.question }}</p>
<!-- ----- answers ------ -->
<div
v-for="(exam, index) in FilteredExams[0].Questions[index].Answers"
:key="index + RandomKey()"
class="flex gap-3 items-center"
>
<input
type="radio"
:name="index !== 0 ? 'answer' + this.RadioNumber : ++this.RadioNumber && 'answer' + this.RadioNumber"
:value="exam.answer"
v-model="ExamAnswers[index]"
/>
<label class="text-sm text-secondary-600">
{{ exam.answer }}
</label>
</div>
</div>
以下代码的答案是我的数据部分:
data() {
return {
DspLastItem: false,
stageNumber: null,
StageOnChange: null,
StageCount: null,
RadioNumber: 1,
StepCount: [],
exams: [],
FilteredExams: [],
errors: [],
ExamAnswers: [],
};
},
这是我的API数据
[
{
"ExamTitle": "تست شخصیت",
"ExamImage": {
"url": "http://localhost/wp-content/uploads/2022/06/personalitytest.png",
"id": "27",
"width": "217",
"height": "232",
"thumbnail": "http://localhost/wp-content/uploads/2022/06/personalitytest.png",
"alt": "",
"title": "personalitytest",
"description": ""
},
"ExamDesc": "در حدود ۴۶۰ سال قبل از میلاد مسیح، بقراط اظهار داشت که انسان ها دارای شخصیت هستند، شخصیتی که از چهار حالت متمایز تشکیل شده است. وی گفت که هر ویژگی که در افراد حاکم تر باشد، حالت آن ها و در نتیجه شخصیت منحصر به فرد آن ها را تعیین می کند.",
"Questions": [
{
"question": "آیا ترجیح می دهید زندگی تان سرشار از تغییر باشد؟",
"MainAnswer": "بله",
"Answers": [
{
"answer": "نمیدانم ",
"AnswerWeight": "10"
},
{
"answer": "بله",
"AnswerWeight": "20"
},
{
"answer": "خیر",
"AnswerWeight": "5"
}
]
},
{
"question": "آیا شخص جاه طلبی هستید؟",
"MainAnswer": "بله",
"Answers": [
{
"answer": "بله",
"AnswerWeight": "20"
},
{
"answer": "نمیدانم",
"AnswerWeight": "30"
},
{
"answer": "خیر ",
"AnswerWeight": "15"
},
{
"answer": "مطمین نیستم",
"AnswerWeight": "30"
}
]
},
{
"question": "چه میزان به زندگی امیدوار هستید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "چرا دلیل سکته های قلبی زیاد است",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا آب و هوایی با دمای یکنواخت را ترجیح می دهید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا دوست دارید ورزش های خشن را در تلویزیون تماشا کنید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا هیچ وقت تمایل داشته اید کسی را بکشید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "اگر در کمیته ای عضو باشید، آیا دوست دارید ریاست آن را به عهده بگیرید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا حاضرید داروهایی را مصرف کنید که موجب توهم می شوند؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا آن قدر از دست بقیه عصبانی می شوید که سرشان داد بزنید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا مشارکت خلاقی در جامعه خود دارید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا از کار خود لذت می برید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
}
],
"MinNumberToDown": "5",
"MinNumberToDownMsg": "شخصت شما غیر عادی است",
"MinNumber": "10",
"MaxNumber": "20",
"MinToMaxMsg": "شخصیت شما نرمال است",
"MaxNumberToUp": "20",
"MaxNumberToUpMsg": "شخصیت شما فوق العاده است"
}
]
我该如何解决问题?
I want to store input data in a nested v-for the problem is when I get a second v-for index the index number is not unique, the code below is my nested v-for loop first loop is for getting questions and the second loop is for getting answers
<div
v-for="(exam, index) in FilteredExams[0].Questions"
v-show="index < this.stageNumber"
:class="{
dspnone:
DspLastItem &&
index < this.stageNumber - this.StageOnChange,
}"
:key="index + RandomKey()"
class="flex flex-col gap-5"
>
<!-- questions -->
<p class="text-secondary-600 font-bold">{{ exam.question }}</p>
<!-- ----- answers ------ -->
<div
v-for="(exam, index) in FilteredExams[0].Questions[index].Answers"
:key="index + RandomKey()"
class="flex gap-3 items-center"
>
<input
type="radio"
:name="index !== 0 ? 'answer' + this.RadioNumber : ++this.RadioNumber && 'answer' + this.RadioNumber"
:value="exam.answer"
v-model="ExamAnswers[index]"
/>
<label class="text-sm text-secondary-600">
{{ exam.answer }}
</label>
</div>
</div>
the code below is my data section:
data() {
return {
DspLastItem: false,
stageNumber: null,
StageOnChange: null,
StageCount: null,
RadioNumber: 1,
StepCount: [],
exams: [],
FilteredExams: [],
errors: [],
ExamAnswers: [],
};
},
this is my API data
[
{
"ExamTitle": "تست شخصیت",
"ExamImage": {
"url": "http://localhost/wp-content/uploads/2022/06/personalitytest.png",
"id": "27",
"width": "217",
"height": "232",
"thumbnail": "http://localhost/wp-content/uploads/2022/06/personalitytest.png",
"alt": "",
"title": "personalitytest",
"description": ""
},
"ExamDesc": "در حدود ۴۶۰ سال قبل از میلاد مسیح، بقراط اظهار داشت که انسان ها دارای شخصیت هستند، شخصیتی که از چهار حالت متمایز تشکیل شده است. وی گفت که هر ویژگی که در افراد حاکم تر باشد، حالت آن ها و در نتیجه شخصیت منحصر به فرد آن ها را تعیین می کند.",
"Questions": [
{
"question": "آیا ترجیح می دهید زندگی تان سرشار از تغییر باشد؟",
"MainAnswer": "بله",
"Answers": [
{
"answer": "نمیدانم ",
"AnswerWeight": "10"
},
{
"answer": "بله",
"AnswerWeight": "20"
},
{
"answer": "خیر",
"AnswerWeight": "5"
}
]
},
{
"question": "آیا شخص جاه طلبی هستید؟",
"MainAnswer": "بله",
"Answers": [
{
"answer": "بله",
"AnswerWeight": "20"
},
{
"answer": "نمیدانم",
"AnswerWeight": "30"
},
{
"answer": "خیر ",
"AnswerWeight": "15"
},
{
"answer": "مطمین نیستم",
"AnswerWeight": "30"
}
]
},
{
"question": "چه میزان به زندگی امیدوار هستید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "چرا دلیل سکته های قلبی زیاد است",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا آب و هوایی با دمای یکنواخت را ترجیح می دهید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا دوست دارید ورزش های خشن را در تلویزیون تماشا کنید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا هیچ وقت تمایل داشته اید کسی را بکشید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "اگر در کمیته ای عضو باشید، آیا دوست دارید ریاست آن را به عهده بگیرید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا حاضرید داروهایی را مصرف کنید که موجب توهم می شوند؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا آن قدر از دست بقیه عصبانی می شوید که سرشان داد بزنید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا مشارکت خلاقی در جامعه خود دارید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
},
{
"question": "آیا از کار خود لذت می برید؟",
"MainAnswer": "زیاد",
"Answers": [
{
"answer": "بسیار کم",
"AnswerWeight": "5"
},
{
"answer": "بسیار زیاد",
"AnswerWeight": "10"
},
{
"answer": "خیلی زیاد",
"AnswerWeight": "20"
},
{
"answer": "در حد عالی ",
"AnswerWeight": "50"
},
{
"answer": "بیش از 90 درصد",
"AnswerWeight": "100"
}
]
}
],
"MinNumberToDown": "5",
"MinNumberToDownMsg": "شخصت شما غیر عادی است",
"MinNumber": "10",
"MaxNumber": "20",
"MinToMaxMsg": "شخصیت شما نرمال است",
"MaxNumberToUp": "20",
"MaxNumberToUpMsg": "شخصیت شما فوق العاده است"
}
]
how can I solve the problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要重命名
index
变量的内部实例,以便能够彼此区分它们。例如,实例inniNIndex
。这是我的意思的示例:
应该这样做。请注意,我仅在Inner
vor
的破坏参数和以下中,如何将
转换为index
inninIndex
:键绑定。在样本中可以简化更多的东西,但这是这个问题。
You need to rename the inner instance of the
index
variable to be able to distinguish them from each other. For instanceinnerIndex
.Here's a sample of what I mean:
That should do it. Notice how I've only changed the
index
toinnerIndex
in the destructured argument of the innerv-for
and in the following:key
binding.There are more that can be simplified and made more clear in your sample, but that is beyond this question.