我是否认为你在循环时无法从循环外部访问变量?
例如:
{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(作为示例)?
此致,
克里斯
答案 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}
希望这有帮助。