Docpad:动态获取集合项

时间:2015-10-09 00:56:05

标签: docpad eco

我是docpad的新手。 我的项目中有像过滤器这样的东西。很少有切换器可以过滤图标列表。用户单击图标后,应显示所选项目的详细信息。此项目位于docpad集合中。怎么实现这个? 列表中的每个图标的id都等于docpad集合中响应项的ID。 有没有办法在变量onclick中存储所选项目的ID(为了在生态模板中过滤getCollectiongetFileById)?

1 个答案:

答案 0 :(得分:1)

我不清楚你想要达到的目标。如果您想通过用户点击过滤页面上的项目,例如砌筑/ pinterest布局,那么方法是将所有收集项目输出到页面,然后使用客户端JavaScript过滤它们。如果要在用户单击项目时显示更多详细信息,原则是相同的。将集合的所有详细信息输出到页面,但只有在用户单击项目时才会显示完整的详细信息(再次使用客户端脚本)。

现在,如果集合太大或内容太长而无法输出到页面,并且您需要在回发后生成内容(即动态),则可以在元数据中将页面标记为dynamic = true。您还需要安装clean urls plugin

编辑:

使用eco模板系统过滤动态生成页面上的集合的示例。

---
layout: simple
dynamic: true
---

<%collection = ['Aardvark',"Arrows","Armageddon","Buildings","Bats","Bob the builder"] %>
<%query = @req.query%>
<%-query.q%>
<%filter = query.q%>
<h1><%-(new Date()).toString()%></h1>
<ul>
<% for item in collection:%>
<%if item[0].toLowerCase() == filter or !filter:%>
    <li><%-item%></li>
<%end%>
<%end%>
</ul>

这假定存在q=aq=b等形式的查询参数。即http://127.0.0.1:9778/?q=a。我还写了日期来证明每个请求都重新生成页面。

查看DocPad文档的metadata section