我是docpad的新手。
我的项目中有像过滤器这样的东西。很少有切换器可以过滤图标列表。用户单击图标后,应显示所选项目的详细信息。此项目位于docpad集合中。怎么实现这个?
列表中的每个图标的id都等于docpad集合中响应项的ID。
有没有办法在变量onclick
中存储所选项目的ID(为了在生态模板中过滤getCollection
或getFileById
)?
答案 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=a
或q=b
等形式的查询参数。即http://127.0.0.1:9778/?q=a
。我还写了日期来证明每个请求都重新生成页面。
查看DocPad文档的metadata section。