У меня есть цикл for, работающий двадцать раз, переменная "i", и у меня есть объект Handlebars, {{команды}}.У меня есть код, который вставляется в цикл каждый раз.Я хотел бы использовать переменную i внутри объекта Handlebars.
Я пытался вырваться из предварительно собранного кода, чтобы добавить i, но он никогда не возвращает результат.Он возвращает его, если я заменю i на [0], но для каждого из них будет только первый результат в массиве.
<script>
$(document).ready(function() {
for (i = 1; i < 21; i++) {
text = "<div class='form-group row'><div class='col-md-4'><input id='player" + i + "Name' name='player" + i + "Name' value='{{teams.[0].team.teamRoster.players.[" + i + "].playerName}}' type='text' class='form-control here'></div><div class='col-md-4'><select id='player" + i + "Number' name='player" + i + "Number' class='form-control here jerseyNumber'></select></div><div class='col-md-4'><select id='player" + i + "Position' name='player" + i + "Position' class='form-control here position'><option value='--'>--</option><option value='Goaltender'>Goaltender</option><option value='Forward'>Forward</option><option value='Defense'>Defense</option></select></div>";
var playerSpan = $('.player');
playerSpan.append($(text));
}
$(".jerseyNumber").each(function(){
var $select = $(this);
for (n=0;n<=99;n++){
$select.append($('<option></option>').val(n).text(n))
}
});
});
</script>
Я бы ожидал, что добавленная переменная i будет заменена числом вВозвращается массив от 0 до 19, а затем добавляется оставшаяся часть объекта handlebar.Это не так, это просто ничего не возвращает.Осмотр показывает, что строка выглядит следующим образом:
'<input id="player1Name" name="player1Name" value="" type="text" class="form-control here">'
Любая помощь приветствуется.
ОБНОВЛЕНИЕ: Я использовал это, чтобы изменить значение сейчас:
{{#each team.team.teamRoster.players}}{{this.playerName}}{{/each}}
Но теперь яЯ получаю все двадцать имен во всех двадцати ценностях.Закрыть, но пока нет.
ОБНОВЛЕНИЕ 2: Я изменил его снова, код теперь выглядит следующим образом:
<script>
$(document).ready(function() {
for (i = 1; i < 21; i++) {
{{#each team.team.teamRoster.players}}
text = "<div class='form-group row'><div class='col-md-4'><input id='player" + i + "Name' name='player" + i + "Name' value='{{this.playerName}}' type='text' class='form-control here'></div><div class='col-md-4'><select id='player" + i + "Number' name='player" + i + "Number' value='{{this.playerNumber}}' class='form-control here jerseyNumber'></select></div><div class='col-md-4'><select id='player" + i + "Position' name='player" + i + "Position' value='{{this.playerPosition}}' class='form-control here position'><option value='--'>--</option><option value='Goaltender'>Goaltender</option><option value='Forward'>Forward</option><option value='Defense'>Defense</option></select></div>";
{{/each}}
var playerSpan = $('.player');
playerSpan.append($(text));
}
$(".jerseyNumber").each(function(){
var $select = $(this);
for (n=0;n<=99;n++){
$select.append($('<option></option>').val(n).text(n))
}
});
});
Единственная проблема, теперь этоотображает только последнее (20-е) имя в каждом текстовом поле.Не уверен, почему это так.