0

我是否认为您在循环时不能从循环外部访问变量?

例如:

{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 (例如)?

你的,
克里斯

4

1 回答 1

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}

希望这可以帮助。

于 2010-01-22T11:50:24.043 回答