如何在{{#each pages}}中检测页面是否是最新的?

时间:2015-03-24 14:37:56

标签: javascript handlebars.js assemble

我只需要几天时间学习assemble,我正尝试使用部分内容创建目录。


toc.hbs

<ul >
{{#each  pages }}
    <li>
        <a  href ="{{assets }}/{{basename }}.html" >{{data.title }}</a >
    </li >
{{/each  }}
</ul >

layout.hbs

<div class="row">
    <div class="col-sm-3">
        {{> toc}}
    </div>
    <div class="col-sm-9">
        {{> body}}
    </div>
</div>

除非我想设置class =&#34; active&#34;在当前页面上。

问:有没有办法使用assemble&amp; amp;的内置功能轻松完成此操作车把?我是否需要使用ifCond之类的帮助程序?

2 个答案:

答案 0 :(得分:1)

您可以使用{{#is}}{{/is}}块有条件地添加样式。

<li {{#is title "Features"}}class="active"{{/is}}>
  <a href="features.html">Features</a>
</li>

如果你认为标题不够稳定,你可以在basename或其他字段进行比较。

答案 1 :(得分:0)

经过一段时间的游戏,我终于发现了{{debug}}帮助器,它将整个上下文输出到控制台。从这里我发现有一个未记录的属性isCurrentPage,当页面是当前正在处理的页面时返回true

<强>结果:

<ul >
{{#each  pages }}
    <li {{#if isCurrentPage}}class="active"{{/if}}>
        <a href ="{{assets }}/{{basename }}.html" >{{data.title }}</a >
    </li >
{{/each  }}
</ul >