{{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 查看当前上下文的父级,这是辅助函数所在的位置。