在我的模型中,变量共享相同的名称,例如name
或slug
。这会导致一个问题,因为我循环遍历一个,并且在每次迭代中,我遍历另一个模型,但在内部循环中,当我使用{slug}
时,我无法访问“父”slug。
我通过在启动循环后立即创建一个新范围来解决这个问题,并在其中放入一个参数来命名迭代,如下所示:
{#categories}{#. category=.}
<section class="category {category.slug}">
<h2 class="name">
<a href="/{category.slug}">
{category.name}
</a>
</h2>
{#category.forums}{#. forum=.}
<article class="forum {forum.slug}">
<h3 class="name">
<a href="/{category.slug}/{forum.slug}">
{forum.name}
</a>
</h3>
<p class="description">
{forum.description}
</p>
</article>
{/.}{/category.forums}
</section>
{/.}{/categories}
由于这有效,我的问题是,“如何在启动循环的同一标记中命名迭代?”{#categories category=.}
不起作用。
我可以忍受我所拥有的东西,但我想尽可能地清理它。
答案 0 :(得分:1)
你走在正确的轨道上。不是将当前上下文作为参数传递,而是传递上一个上下文。
{#categories}
<section class="category {slug}">
<h2 class="name">
<a href="/{slug}">
{name}
</a>
</h2>
{#forums category=.}
<article class="forum {slug}">
<h3 class="name">
<a href="/{category.slug}/{slug}">
{name}
</a>
</h3>
<p class="description">
{description}
</p>
</article>
{/forums}
</section>
{/categories}