如何过滤集合循环中的数据?

时间:2013-08-01 11:22:05

标签: handlebars.js assemble

我正在尝试根据YAML前端的数据构建相关的信息窗口小部件。 我的收藏中的每个页面都有一些关联的标签,其想法是仅显示那些与当前查看的页面具有共同标签的页面。

我设法使用以下代码获取输出现有页面的完整标签:

<section class="see-also">
{{#each tags}}
    <p>In <span class="tag">{{tag}}</span>:</p>
    {{#each pages}}
      <li><a href="{{relative ../../page.dest dest}}">{{data.title}}</a></li>
    {{/each}}
{{/each}}
</section>

我可以在{{#each tags}}上使用某种过滤器吗?

感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用inArray helper来测试当前标记是否位于当前正在呈现的页面上的tags集合中:

<section class="see-also">
{{#each tags}}
{{#inArray ../page.tags tag }}
    <p>In <span class="tag">{{tag}}</span>:</p>
    {{#each pages}}
      <li><a href="{{relative ../../page.dest dest}}">{{data.title}}</a></li>
    {{/each}}
{{/inArray}}
{{/each}}
</section>

您可能必须修改父路径语法以考虑其他块帮助程序:

<section class="see-also">
{{#each tags}}
{{#inArray ../page.tags tag }}
    <p>In <span class="tag">{{tag}}</span>:</p>
    {{#each ../pages}}
      <li><a href="{{relative ../../../page.dest ../dest}}">{{../data.title}}</a></li>
    {{/each}}
{{/inArray}}
{{/each}}
</section>