0

我是docpad的新手。我的项目中有类似过滤器的东西。很少有切换器可以过滤图标列表。用户单击图标后,应显示有关所选项目的详细信息。此项目在 docpad 集合中。如何实施?列表中的每个图标的 id 都等于 docpad 集合中响应项的 id。有没有办法将所选项目的 id 存储在变量onclick中(以便在过滤器getCollectiongetFileById生态模板中使用它)?

4

1 回答 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=aq=b等形式的查询参数,即http://127.0.0.1:9778/?q=a。我还写出了日期,以证明每个请求都会重新生成页面。

查看 DocPad 文档的元数据部分

于 2015-10-19T10:28:14.317 回答