【问题标题】:How do I identify the current page in a page collection?如何识别页面集合中的当前页面?
【发布时间】:2014-02-07 14:28:34
【问题描述】:

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

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

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

  1. 把手中的if 助手似乎没有办法比较两个表达式。我可以编写一个自定义助手,但我想在尝试之前知道这是最好的方法。
  2. 不知道如何区分当前集合迭代的title和当前页面的title。据我所知,它们都被简称为title

如何确定页面收集循环何时在正在呈现的当前页面的页面上运行?

【问题讨论】:

    标签: gruntjs handlebars.js assemble


    【解决方案1】:

    使用isCurrentPage

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

    或者,您可以使用isActive 助手。

    【讨论】:

    • 我已经使用is 助手实现了一个解决方案,将data.title 与页面的title 进行比较,但这更清晰。谢谢!
    • fwiw,this 不是必需的。在这种情况下,this 是不必要的,除非您使用与助手同名的变量,并且您需要告诉车把如何区分两者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2013-07-11
    • 2017-02-01
    • 2022-11-02
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    相关资源
    最近更新 更多