1

我正在尝试宣传页面上的内容。该内容应该是即将到来的内容,即所有相同类型中的下一个(“事件”)。

以下是元数据的样子:

---
layout: event
date: 2013-12-11
title: Cool event
---

docpad.coffee 文件集合配置看起来像(使用 moment.js):

collections:
    events: (database) ->
        database.findAllLive(type: "event", [date: -1])

    next_events: (database) ->
        @getCollection("events")
            .setFilter("upcoming", (event, searchString) ->
                return moment(event.eventDate, "YYYY-MM-DD").diff(moment()) < 0
            )

最后在 index.html.eco 中:

<% for event in @getCollection("next_events").toJSON(): %>
    <h3><%= event.title %></h3>
<% end %>

问题:它显示了我所有的事件,而不仅仅是未来的事件。当我使用该events集合时,它按预期工作(所有事件按日期顺序排序)。但是当我使用该next_events集合时没有区别。我知道要只显示一个,我需要使用类似<% for event in @getCollection("next_events").toJSON()[0]: %>.

任何指针都非常感谢。

4

1 回答 1

2

尝试这个:

next_events: (database) ->
    @getCollection("events")
        .createLiveChildCollection()
        .setFilter("upcoming", (event, searchString) ->
            return moment(event.eventDate, "YYYY-MM-DD").diff(moment()) < 0
        )
        .query()
于 2013-09-09T01:28:36.217 回答