车把.js循环中的助手 #each 返回相同的结果
Handlebars.js helper in #each loop returns same results?
我正在尝试使用 #each 循环中车把注册的momentjs助手来格式化我的日期。注册的帮助程序如下所示:
Handlebars.registerHelper('dateFormat', function(context( { if (window.moment( { return moment(Date(context((.format("MMM Do, YYYY"(; }else{ 返回上下文; }; });
车把环看起来像这样
{#each controller}}
{{{身体}}}
{{{日期格式日期}}}
{{/每个}}
正在循环的 JSON 在此
{ "想法":[ { "_id":"548eeebeda11ffbe12000002", "身体":"牛", "标签":"牛", "日期":"2014-12-15T14:22:54.088Z" }, { "_id":"548eeec2da11ffbe12000003", "身体":"牛", "标签":"驼鹿", "日期":"2014-10-15T14:22:58.947Z" } ] }
所以我遇到的问题是它循环得很好,只是没有正确评估帮助程序。
我得到的结果看起来像这样
cow 15 12月 2014
cow 15 12月 2014
日期总是相同的。
它应该看起来像这样
cow 15 12月 2014
牛 15 10月 2014
我使用它.get('date'(;
Handlebars.registerHelper('dateFormat', function(context( { if (window.moment( { return moment(this.get('date'((.format("MMM Do, YYYY"(; }else{ 返回上下文; }; });
最初的问题是你没有在循环的每次迭代中实例化一个新的日期。
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)
相关文章:
- JSONP请求返回结果,但也触发error_callback
- async问题,JS Promise无法返回结果,但可以使用console.log
- Meteor js-控制台显示'未定义'即使返回结果
- 正在等待HTTP调用从函数返回结果
- 使用函数for循环遍历对象以更改值,然后返回结果
- 迭代 JSON 文件并且未在 Javascript 中正确返回结果
- Javascript 函数不返回结果
- 用逗号分隔返回结果中的对象
- 需要呈现MongoDB查询返回结果的特定索引/位置
- HTML5 文件阅读器如何返回结果
- javascript循环遍历列表项,并在数组中返回结果
- 使用jquery UI next按钮提交输入字段值,php将返回结果
- 在angularjs工厂中,如何在函数解析后返回结果
- 我在jQuery中的Rock Paper Scissors程序只在平局时返回结果
- 如何使用ajax调用php并返回结果
- 添加第二维度的Javascript未返回结果
- Node.js没有返回结果
- jquery裁剪图像selction未返回结果
- 如何在phonegap javascript函数中返回结果
- 如果文本筛选器在ng重复中未返回结果,则显示消息