如何识别页面集合中的当前页面?

时间:2014-02-07 14:28:34

标签: gruntjs handlebars.js assemble

我正在使用Grunt的Assemble.io配置静态站点生成器。我正在使用Pages Collection来构建如下的导航列表:

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

我还想将class="active"应用于当前页面的导航项,但我不确定如何处理此问题。我的第一个想法是尝试将集合的当前迭代的标题与正在呈现的页面的标题进行比较,但这有两个问题:

  1. 手柄中的if助手似乎无法比较两个表达式。我可以写一个自定义帮助器,但我想知道这是我尝试之前的最好方法。
  2. 我不知道如何区分当前集合迭代的title和当前页面的title。就我所知,它们都被简称为{{1}}。
  3. 如何确定页面集合循环何时在正在呈现的当前页面的页面上运行?

1 个答案:

答案 0 :(得分:3)

使用isCurrentPage

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

或者,您可以使用isActive帮助程序。