Как объявить и обновить переменные в шаблонах закрытия 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