2015-01-03 5 views
1

В моих моделях переменные имеют одинаковые имена, например name, или slug. Это вызывает проблему, потому что я петлю через один, и на каждой итерации я прохожу через другую модель, но во внутреннем цикле, когда я использую {slug}, я не могу получить доступ к «родительскому» пулю.Dustjs - Итерация цикла как ___

Я решил путем создания новой области сразу же после того, как я начинаю цикл, и поместить параметр в ней назвать итерации, например, так:

{#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

Вы находитесь на правильном пути. Вместо прохождения текущий контекст в качестве параметра, передать предыдущий контекст вместо этого.

{#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} 
+0

Вы знаете, я на самом деле сделал это первым. это действительно самый лучший способ сделать это? – ndugger

+0

это на самом деле не получить ничего проще! Вы» всегда использую текущую область действия безоговорочно и передавая ее в область родителя. – Interrobang

+0

Хорошо, я просто переключился на пыль m ejs, поэтому его просто немного привыкнуть. – ndugger

Смежные вопросы