如果条件,Ember js问题

时间:2014-03-19 10:53:30

标签: ember.js ember-rails

我在框架中对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日的所有活动都应该在15月3日之前展示,比如

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 condition”下使用它,它会给我一个错误,如果条件只能接受一个参数

请建议正确的方向

1 个答案:

答案 0 :(得分:1)

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

  • 编写自己的把手checkDate帮助程序(也许可以在if帮助程序中将其用作子表达式 - 甚至可以扩展if帮助程序本身)

  • 更简单,更清洁的方式 - 在控制器中创建逐个事件的列表,并对其进行迭代。