Как объявить и обновить переменные в шаблонах закрытия Google (шаблон сои)

Давайте возьмем 2 массива arr1 = ['a', 'b', 'c'] и arr2 = ['1', '2', '3']. Когда эти массивы были переданы в качестве параметров в шаблоне сои, я хочу выполнить итерацию, как показано ниже, и напечатать индекс, который указывает общее количество итераций, выполненных до сих пор.

index: 0 //variable assigned to 0 by default
{foreach $i in $arr1}
    {foreach $j in $arr2}
       index = index + 1; //variable incremented by 1
       {$index} th item //print item index
    {/foreach}
{/foreach}

Поскольку переменная, объявленная с использованием let, не может быть переназначена новому значению, есть ли способ в шаблонах достичь логики, которую я показал выше.

1 ответ

Внутри блока вы можете использовать три специальные функции, которые в качестве аргумента принимают только итератор:

  • isFirst($var) возвращается true только на первой итерации.
  • isLast($var) возвращается true только на последней итерации.
  • index($var) возвращает текущий индекс в списке. Индексы списка основаны на 0.

Тогда вы можете использовать index($j):

{foreach $i in $arr1}
  {foreach $j in $arr2}
    {index($j)}
  {/foreach}
{/foreach}

Надеюсь, я мог помочь;)

Источник: https://developers.google.com/closure/templates/docs/commands

Другие вопросы по тегам