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と同等です。 }

もう1つの方法は、配列のどこを見ればよいかわからない場合、ループ中に変数を保存して、そこから変数にアクセスできるようにすることですが、親スコープに割り当てることはできません。現時点では、スコープを移動しないため、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 に答える