У меня есть большая форма из переключателей, которые я бы хотел создать динамически с помощью nunjucks.Итерационные формы радиовходы динамически с данными json, nunjucks и for loop
У меня есть файл json с данными для заполнения каждой группы ввода формы html с переменными. Html состоит из двух радиовходов на группу.
Я могу получить переменные из json-файла, но я застрял на создании цикла FOR.
То, что я пытаюсь выполнить, - это цикл через каждый подраздел в файле checklist.json и заполнять список html переменными в каждом массиве, создавая список до конца данных.
Как видно из html, все переменные из каждого массива используются дважды в блоке ввода html, за исключением значения.
Реферат: До тех пор, пока существуют подразделы, содержащие массив, перебирайте входы формы html и заполняйте каждый из объектов в каждом массиве.
index.njks
{% include "../includes/checklist-radio.njk" %}
checklist.json (вар = checklist_json)
{"checklist_title":"checklist variable test",
"checklist": [
{"section_title":"Responsive Design (Useability)",
"section":[
{"subsection_title1":"Mozilla Firefox Useability",
"subsection":[
{
"radio_title": "Mobile (Samsung S7 Edge)",
"name":"firefox_mobile",
"value": 1,
"class":"useability"
},
{
"radio_title": "Tablet (Surface Pro)",
"name":"firefox_tablet",
"value": 1,
"class":"useability"
},
{
"radio_title": "Desktop (Windows 10)",
"name":"firefox_desktop",
"value": 1,
"class":"useability"
}
]}
]}
]}
Контрольный список-radio.njk
{% for checklist_json.checklist.section.subsection in checklist_json.checklist.section %}
<li>
<span class="radio_title">{{checklist_json.checklist.section.subsection.radio_title}}</span>
<label class="radio_label">
<input type="radio" class="radio {{checklist_json.checklist.section.subsection.class}}" name="{{checklist_json.checklist.section.subsection.name}}" value="{{checklist_json.checklist.section.subsection.value | escape}}">
Yes</label>
<label class="radio_label">
<input type="radio" class="radio {{checklist_json.checklist.section.subsection.class}}" name="{{checklist_json.checklist.section.subsection.name}}" value="0">
No</label>
</li>
{% endfor %}
Мысли пожалуйста?
Редактировать: реальный список намного больше со многими разделами и подразделами.
все еще надеясь, что кто-то может дать некоторые указатели на это. – JPB
Проверьте рабочее решение ниже – Daniel