Dustjs - 循环迭代为___

时间:2015-01-03 16:18:45

标签: dust.js

在我的模型中,变量共享相同的名称,例如nameslug。这会导致一个问题,因为我循环遍历一个,并且在每次迭代中,我遍历另一个模型,但在内部循环中,当我使用{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=.}不起作用。

我可以忍受我所拥有的东西,但我想尽可能地清理它。

1 个答案:

答案 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}