Можете ли вы прорваться внутрь Handlebar {{object}}, чтобы вставить переменную? - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть цикл 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-е) имя в каждом текстовом поле.Не уверен, почему это так.

...