2014-02-07 3 views
2

Я настраиваю статический генератор сайта, используя Grange's Assemble.io. Я использую Страницы Коллекцию для создания списка навигации следующим образом:Как определить текущую страницу в коллекции страниц?

{{#each pages }} 
    <li><a href="{{{filename}} }">{{{title}} }</a></li> 
{{/each }} 

Я хотел бы также обратиться к class="active" элементу навигации для текущей страницы, но я не знаю, как подойти к этому. Моя первая мысль была попытка сравнения название текущей итерации коллекции в том, что страницы, оказываемую, но есть две проблемы:

  1. if помощник в руле не кажется, есть способ сравните два выражения. Я мог бы написать пользовательский помощник, но я хотел бы знать, что это лучший способ, прежде чем я попробую.
  2. Я не знаю, как отличить title от текущей итерации и текущей страницы. Насколько я могу судить, их можно назвать просто title.

Как определить, когда цикл обработки страниц работает на странице, которая отображается на текущей странице?

ответ

3

Использование isCurrentPage

{{#each pages }} 
<li{{#if this.isCurrentPage}} class="active"{{/if}}> 
    <a href="{{{filename}} }">{{{title}} }</a> 
</li> 
{{/each }} 

В качестве альтернативы, вы можете использовать isActive помощника.

+0

Я реализовал решение, используя '' 'помощник, сравнивающий' data.title' с 'title' страницы, но это намного чище. Благодаря! – raddevon

+1

fwiw, 'this' не требуется. В этом сценарии «это» никогда не требуется, если вы не используете переменную с тем же именем, что и помощник, и вам нужно указать рули, как различать их. – jonschlinkert

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