Dwoo - 你可以在循环时访问其他变量吗?

时间:2010-01-21 10:29:06

标签: dwoo

我是否认为你在循环时无法从循环外部访问变量?

例如:

  

{loop $ nav_header}
  <li><a href="{$link}"><img src="{$template.imagefolder}/{$icon}" width="48" height="48" border="0" alt="{$title}" /><br />{$title}</a></li>
  {/回路}

我试图从循环外部使用$ template.imagefolder(作为示例)?

此致,
克里斯

1 个答案:

答案 0 :(得分:3)

(从http://forum.dwoo.org/viewtopic.php?id=617复制我的回答以供将来参考)

嗯,你可以,但你要知道你想要什么......

$ nav_header是一个数组,因此您可以通过执行{$ nav_header.0.template.imagefolder}从外部循环访问它,这样就可以为您提供第一个数据数组的项目。

如果你想从循环中 中访问顶级变量,即如果你的主数据节点中有$ path和$ nav_header,你就会{$ _.path},这相当于{$ _parent.path}

另一种方法,如果您不知道在数组中的确切位置,则在循环时保存变量,然后您可以从中访问它,但是您无法分配给它目前的父范围,所以你应该使用foreach,因为它不会移动范围,即:

{foreach $nav_header elem}
    <li><a href="{$elem.link}"><img src="{$elem.template.imagefolder}/{$elem.icon}" width="48" height="48" border="0" alt="{$elem.title}" /><br />{$elem.title}</a></li>
    {if $elem.title == "foo"}{$folder = $elem.template.imagefolder}{/if}
{/foreach}

{$folder}

希望这有帮助。