绑定帮助器将参数作为字符串而不是属性值

ken*_*ken 2 handlebars.js ember.js

我是Handlebars(和Ember)的新手,所以这可能是我犯了一个悲惨的错误,但我感到很困惑,我希望其他人能看到这个.

我有一个简单的把手绑定帮助器(注意:我正在使用moment.js并加载相应的JS):

Handlebars.registerHelper('time', function(context) {
  console.log("time: " + context);
  var aMomentInTime = new moment(context,["YYYY-MM-DD", "YYYY-MM-DD HH:mm:ss"]);
  return aMomentInTime.format("ddd, h:mmA");
});
Run Code Online (Sandbox Code Playgroud)

#each视图模板的块中,我有以下内容:

{{#each Controller}}
    <p>
        {{time start_time}}<br/>  
        {{start_time}}
    </p>
{{/each}}
Run Code Online (Sandbox Code Playgroud)

在模型中start_time定义DS.attr("date")的位置.在第一行我期望基于start_time的值的格式化日期,遗憾的是console.log指示而不是start_time的日期对象(或者甚至是具有start_time值的字符串)我只是得到了字符串"start_time".是什么赋予了?

在此输入图像描述

由于字符串进入,moment.js尝试优雅地处理它并输出Sat, 12:00 AM(也就是说,它不知道无意义的字符串意味着什么日期代表).

相反,{{start_time}}参考可正常工作并输出如下结果:2013-07-09 08:00:06.

Dar*_*kar 5

registerHelper不支持绑定.使用registerBoundHelper或只是helper.

Ember.Handlebars.helper('time', function(context) {
  console.log("time: " + context);
  var aMomentInTime = new moment(context,["YYYY-MM-DD", "YYYY-MM-DD HH:mm:ss"]);
  return aMomentInTime.format("ddd, h:mmA");
});
Run Code Online (Sandbox Code Playgroud)