0

我在 Ember 框架中是全新的,并且在一项任务中遇到了困难。

我有一系列日期,例如

["2014-03-15T12:30:00Z", "2014-03-14T12:30:00Z", "2014-03-13T12:30:00Z", "2014-03-05T02:30:00Z", "2014-03-04T12:30:00Z", "2014-03-04T12:30:00Z", "2014-03-03T12:30:00Z", "2014-02-13T12:30:00Z"]

还有一组事件对象

我想创建一个模板,该模板将按日期显示事件。我的意思是 3 月 15 日的所有事件都应该在 3 月 15 日之后显示,比如

Today
  Event 1
  Event 2

15th March
  Event 3
  Event 4

同样地

这是我到目前为止使用的代码

<div class="posts">
 {{#each time in allEventsTimes}}
  {{time}}
   <ul id="posts" class="nav">
     {{#each event in activities}}
       {{if checkDate(event.trackable.startTime time)}}
         {{partial 'user/date_event'}}
       {{/if}} 
     {{/each}}
   </ul>
 {{/each}}
</div>

哪里有一个方法名称“checkDate”,它将“event.trackable.startTime”与“time”进行比较

如果我单独使用它,我可以获得“checkDate”方法的结果,但是如果我在“if 条件”下使用它,它会给我一个错误,即 if 条件只能接受一个参数

请建议正确的方向

4

1 回答 1

1

Handlebars 试图成为一个无逻辑的模板引擎,因此它不允许您以这种方式运行方法。您可以通过以下任一方式解决它:

  • 编写您自己的车把 checkDate 帮助器(并可能将其用作 if 帮助器中的子表达式 - 甚至扩展 if 帮助器本身)

或者

  • 更简单、更简洁的方法 - 在控制器中创建按时间的事件列表,并对其进行迭代。
于 2014-03-19T11:22:11.993 回答