У меня есть массив JSON с двумя флажками. При установке флажка мне нужно получить индекс массива установленного флажка. Любая помощь будет оценена
data.json
"contents" : [
{
"title" : "Book1",
"type" : "CHECKBOX"
},
{
"title" : "Book2",
"type" : "CHECKBOX"
}
]
templates.json
{
"checkboxTemplate": "<div style='width:15px'><input type='checkbox' id='myCheck' onClick='myFunction()'></div>"
}
В контроллере data.json считывается и сохраняется в массиве datalist.
function myFunction() {
var checkBox = document.getElementById("myCheck");
for (var i = 0; i < datalist.length; i++) {
if (checkBox.checked == true){
alert("Checked");
}
else
{
alert("Unchecked");
}
}
}
HTML
<div id = "container" ng-controller = "ContentCtrll as ctrll">
<content-item ng-repeat = "item in ctrll.content" content = "item">
</content-item>
</div>
Добавьте HTML-код, отображающий ваш флажок, обработчик кликов для флажка. Откуда в вашем цикле for берется переменная checkBox?
Какой HTML у ваших флажков?
Внутри функции, которая превращает массив содержимого в отображаемые флажки, добавьте код, который установит идентификатор или атрибут данных для флажка, содержащего индекс элемента массива. Если визуализированные флажки содержатся внутри отдельной оболочки, индекс флажка рядом с дочерними узлами его родительского элемента также будет соответствовать индексу внутри массива.
Если, как вы утверждаете, «массив списков данных содержит массив JSON», то dataList.length не будет работать. JSON - это текст. dataList будет строкой. Вам нужно будет запустить на нем JSON.parse (), прежде чем вы сможете его использовать. Так что нет, dataList - это не «массив JSON», это массив JavaScript. Пожалуйста, поймите разницу и используйте правильную терминологию. Прочтите аннотацию к тег "json" и обратите внимание на особенности JSON и литералов JS. Вы можете подумать, что это педантично, но если вы собираетесь использовать технический термин, вам следует использовать его правильно. Я отредактировал ваш вопрос
В любом случае неясно, как массив каким-либо образом связан с вашими флажками ... имеют ли флажки какой-либо атрибут, который сопоставим с содержимым массива? например может быть, идентификатор или атрибут данных? Как просили другие, покажите соответствующий HTML.
You templates.json предполагает, что вы используете повторяющиеся идентификаторы, что является недопустимым HTML и необходимо исправить.
Чтобы было понятнее: у вас не может быть двух или более элементов на странице с одним и тем же значением id.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Пожалуйста, предоставьте дополнительный код!