我是docpad的新手。我的项目中有类似过滤器的东西。很少有切换器可以过滤图标列表。用户单击图标后,应显示有关所选项目的详细信息。此项目在 docpad 集合中。如何实施?列表中的每个图标的 id 都等于 docpad 集合中响应项的 id。有没有办法将所选项目的 id 存储在变量onclick
中(以便在过滤器getCollection
或getFileById
生态模板中使用它)?
问问题
180 次
1 回答
1
我不清楚你想要实现什么。如果您想通过用户点击过滤页面上的项目,例如 masonry/pinterest 布局,那么方法是将所有集合项目输出到页面,然后使用客户端 JavaScript 过滤它们。如果您想在用户单击某个项目时显示更多详细信息,则原理是相同的。将集合的所有详细信息输出到页面,但仅在用户单击项目时才显示完整详细信息(再次使用客户端脚本)。
现在,如果集合太大或内容太长而无法输出到页面,并且您需要在回发时(即动态)生成内容,则可以dynamic = true
在元数据中标记页面。您还需要安装干净的 urls 插件
编辑:
作为使用生态模板系统在动态生成的页面上过滤集合的示例。
---
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 文档的元数据部分。
于 2015-10-19T10:28:14.317 回答