2016-11-03 9 views
3

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

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} 

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

ответ

0

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

  • 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#foreach