我试图在#each循环中使用车把注册的momentjs助手来格式化我的日期。注册助手看起来像这样:
Handlebars.registerHelper('dateFormat', function(context) { if (window.moment) { return moment(Date(context)).format("MMM Do, YYYY"); }else{ return context; }; });
把手圈看起来像这样
{{#each controller}}
{{{体}}}
{{{dateFormat date}}}
{{/每}}
正在循环的JSON在此
中{ "idea":[ { "_id":"548eeebeda11ffbe12000002", "body":"cow", "tag":"cow", "date":"2014-12-15T14:22:54.088Z" }, { "_id":"548eeec2da11ffbe12000003", "body":"cow", "tag":"moose", "date":"2014-10-15T14:22:58.947Z" } ] }
所以我遇到的问题是它很好地循环它只是没有正确评估帮助器。
我看到的结果如下所示
牛2014年12月15日它应该看起来像这样
牛2014年12月15日
牛2014年10月15日
答案 0 :(得分:1)
我使用this.get(' date');
Handlebars.registerHelper('dateFormat', function(context) { if (window.moment) { return moment(this.get('date')).format("MMM Do, YYYY"); }else{ return context; }; });
答案 1 :(得分:0)
最初的问题是你没有在循环的每次迭代中实例化一个新的日期。
Handlebars.registerHelper('dateFormat', function(context) {
if (window.moment) {
// new Date() !, calling Date("anything") returns current date
return moment(new Date(context)).format("MMM Do, YYYY");
}else{
return context;
};
});
两个日期都返回了预期的结果:
new Date("2014-10-15T14:22:58.947Z")
> Wed Oct 15 2014 09:22:58 GMT-0500 (CDT)
new Date("2014-12-15T14:22:54.088Z")
> Mon Dec 15 2014 08:22:54 GMT-0600 (CST)