{{each}} 块中的把手助手
Handlebars Helpers in {{each}} block
我正在使用 Marionette 和 Handlebars,到目前为止,我已经能够很好地使用以下模板助手:
templateHelpers: function(){
return {
formatDate: function(dateString) {
var dateWithOffset = new Date(dateString);
var dateWithoutOffset = new Date(dateWithOffset.getTime() + dateWithOffset.getTimezoneOffset() * 1000 * 60);
return dateWithoutOffset.toLocaleDateString();
}
}
但是,当我尝试在 {{each}} 块内的 .hbs 中使用它时,出现错误。
{{#each mi.Comments}}
{{formatDate date}}</br>
{{/each}}
mi.Comments 确实有一个日期属性,如果我删除 formatDate,它会为每条评论正确显示未格式化的日期。
这是我得到的错误:
Uncaught Error: Missing helper: "formatDate"
感谢任何指导。这是一个有多个其他开发人员的更大项目的一部分,我希望不使用 HandleBars.registerHelper 方法,因此我不需要修改我的基本小部件文件。
事实证明,当 {{#each}} 块更改上下文时,它也会更改辅助函数的上下文。 .hbs 中的这段代码有效:
{{#each mi.Comments}}
{{../formatDate date}}</br>
{{/each}}
“../”告诉 Handlebars 查看当前上下文的父级,这是辅助函数所在的位置。
我正在使用 Marionette 和 Handlebars,到目前为止,我已经能够很好地使用以下模板助手:
templateHelpers: function(){
return {
formatDate: function(dateString) {
var dateWithOffset = new Date(dateString);
var dateWithoutOffset = new Date(dateWithOffset.getTime() + dateWithOffset.getTimezoneOffset() * 1000 * 60);
return dateWithoutOffset.toLocaleDateString();
}
}
但是,当我尝试在 {{each}} 块内的 .hbs 中使用它时,出现错误。
{{#each mi.Comments}}
{{formatDate date}}</br>
{{/each}}
mi.Comments 确实有一个日期属性,如果我删除 formatDate,它会为每条评论正确显示未格式化的日期。
这是我得到的错误:
Uncaught Error: Missing helper: "formatDate"
感谢任何指导。这是一个有多个其他开发人员的更大项目的一部分,我希望不使用 HandleBars.registerHelper 方法,因此我不需要修改我的基本小部件文件。
事实证明,当 {{#each}} 块更改上下文时,它也会更改辅助函数的上下文。 .hbs 中的这段代码有效:
{{#each mi.Comments}}
{{../formatDate date}}</br>
{{/each}}
“../”告诉 Handlebars 查看当前上下文的父级,这是辅助函数所在的位置。