Похоже, у вас просто ошибка в вашем коде.То, что вы пытаетесь сделать, таково:
id=myCheckboxName1
id=myCheckboxName2
id=myCheckboxName3
...
Однако ваш код неверен:
<input class="checkbox__input" type="checkbox" [name]="'myCheckboxName' + i" [id]="'myCheckboxId' + i">
Он интерпретирует весь идентификатор как строку, а не каквставляя числовое значение, чтобы оно выглядело так: myCheckboxIdi
Возможно, попробуйте следующее:
var html = ...;
for(var i = 0; i < options.checkTextArray.length; i++)
{
var checkboxId = `myCheckboxId${i}`;
html +=
`
<label class="checkbox" [attr.for]=${checkboxId}>
<input class="checkbox__input" type="checkbox" [name]=${checkboxId} [id]=${checkboxId}>
<div class="checkbox__box"></div>${options.checkTextArray[i]}:
</label>
<br>
`;
}
Обратите внимание, как значение теперь вставляется в строку через строку шаблона?Это должно сработать, но я не запускал его, поэтому может потребоваться некоторая модификация.Ваш новый код для доступа будет выглядеть примерно так:
var ckbStateBuffer = new Array();
var txtContenBuffer = new Array();
for(var i = 0; i < options.checkTextArray.length; i++) {
ckbStateBuffer.push(document.getElementById(`myCheckboxId${i}`).checked);
}
Что-то, влияющее на это, должно исправить ваш код.Дайте мне знать, если вам нужно больше разъяснений.