如何在谷歌闭包模板中声明和更新变量(大豆模板)

时间:2016-11-03 05:47:15

标签: google-closure-templates soy-templates

让我们拿2个阵列 arr1 = ['a','b','c'] arr2 = ['1','2','3'] 。当将这些数组作为params传递给大豆模板时,我想迭代如下所示并打印索引,指示到目前为止迭代的总项目。

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 个答案:

答案 0 :(得分: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