0

我正在寻找在我的 SpineJS 模型上处理日期和时间的最佳方法。我正在创建各种活动日历。第一个障碍是展示一个不错的 6 周日历。它必须从上个月的最后一个星期日开始,到下个月的第一个星期六结束。

我正在使用 DateJs (http://www.datejs.com/) 并在 View 模板中处理一些日期内容,但想将其中的一些内容移到模型中以清理所述视图。

我正在处理的功能称为“firstDay”。这将找到我们开始日历的日期(上个月的最后一个星期日)

  firstDay: () ->
    Date.today().set({month: @month}).moveToFirstDayOfMonth().moveToDayOfWeek(0, -1)

我尝试的用法:

<% day = cal.firstDay %>

  // initialize the table header, etc

  <tbody>
    <% while !day.equals(cal.lastDay): %>
    // render each calendar tile/square

这是错误:

Uncaught TypeError: Object function () {
      return Date.today().set({
        month: this.month
      }).moveToFirstDayOfMonth().moveToDayOfWeek(0, -1);
    } has no method 'equals'

所以我的 Spine 模型似乎没有意识到 DateJS ......我想这是有道理的。看起来函数本身正在被返回,而不是函数的评估......如果这有意义的话。

对于将日期和时间合并到我的模型中的最佳方式,我们将不胜感激这里的任何指导。

谢谢

4

1 回答 1

0

所以我的问题很简单......语法。作为 coffescript 和 spinjs 的新手,我想我一次看太多东西而错过了明显的东西。

从 coffeescript/eco 模板调用这个函数的正确方法是:

<% day = cal.firstDay() %>

我错过了函数调用的括号。如果我以后再次遇到该错误,这个错误应该很容易识别。事实上,它一开始就应该很明显......再次,太多的新事物。

于 2012-12-21T00:37:51.440 回答