小胡子 {{{partial}}} 与 {{> partial}}

mustache {{{partial}}} vs {{> partial}}

我的 node.js 应用程序中有一个 handlebars/mustache 布局文件,如下所示:

{{> header}}
{{> navbar}}
{{{body}}}
{{> footer-user}}
{{> footer}}

既然五行都是include,那么这两种include有什么区别吗?我可以将 {{{body}}} 替换为 {{>body}} 或将 {{> header}} 替换为 {{{header}}} 吗?它们似乎都没有逃脱包含的 html 。最佳做法是什么?

语法 {{> name}} 用于部分,即包含另一个模板:

Handlebars allows for template reuse through partials. Partials are normal Handlebars templates that may be called directly by other templates.

{{{name}}} 用于包含数据而不对其进行转义。如果你想转义数据,你可以使用 {{name}}:

Handlebars HTML-escapes values returned by a {{expression}}. If you don't want Handlebars to escape a value, use the "triple-stash", {{{.

所以它们是不同的东西。

{{{body}}} 在您的应用程序提供的当前上下文中引用 body 属性(或者它可以引用辅助函数,但此处不是这种情况)。

如果代码中有 {{>body}},则意味着您有一个名为 body 的模板,您希望 handlebars 加载该模板。

请注意,如果您正确使用 Handlebars,则需要通过调用 Handlebars.registerPartial 来注册所有部分(如果您的项目使用 express-handlebars,它会为您完成所有工作,因此您不会找到这在代码中)。

可以在 handlebarsjs.com.

找到 Handlebars 的文档