我是否认为您在循环时不能从循环外部访问变量?
例如:
{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 (例如)?
你的,
克里斯
我是否认为您在循环时不能从循环外部访问变量?
例如:
{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 (例如)?
你的,
克里斯
(从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}
希望这可以帮助。