在与名为{{engine.x.y}}
的模板var挣扎之后,这是一个静默的#34;在我为{{_engine.x.y}}
之类的其他内容更改之前没有显示任何内容,我看到了other words such as {{action}}
seemed to be "reserved", with no "escaping" possibility ...
是否有任何此类"保留字的列表"为了减少惊喜因素" ?我找不到任何东西。
修改
更奇怪的是,当我直接使用{{engine}}
(而不是engine.x.y
)时,它总是会被字符串".hbs"
但是在我的上下文中(Node v4.6 + email-templates + handlebars){{action}}
正常工作(linked problem above看起来特定于Ember.js)
答案 0 :(得分:2)
找到它 - 问题不在于Handlebars(Josh Crozier发现在上面的评论中没有保留任何名字),它与你所在的email-templates
库有关。使用。它使用的render
函数在作为模板上下文传递的对象上设置了几个属性,这意味着如果您的对象包含具有相同名称的属性,则它们会被破坏。
可以找到email-templates
源代码中的相关代码行here,但为了完整起见,被覆盖的属性包括:
filename
(设置为模板的文件名)engine
(设置为正在使用的模板引擎的文件扩展名)templatePath
(设置为包含模板的目录)最明显的解决方案是更改名称,但如果这不是一个选项,则可能需要file an issue on their repo。