我正在尝试根据 YAML front-matter 中的数据构建一个相关的信息小部件。 我的集合中的每个页面都有一些关联的标签,其想法是仅显示那些与当前查看的页面具有共同标签的页面。
我已成功使用以下代码获取输出现有页面的完整标签:
<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}}
上应用某种过滤器吗?
谢谢。
最佳答案
有一个 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>
您可能需要修改父路径语法以考虑附加 block 助手:
<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>
关于handlebars.js - 如何从收集循环中过滤数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17992684/