Mustachio:if-statement没有范围 - 是否可能?

时间:2016-04-27 08:15:03

标签: mustache postmark

我将电子邮件模板从Mandrill移动到邮戳,这需要将Handlebars转换为Mustachio。在Handlebars我有这样的事情:

{{#if some_variable}}
<p>This text uses variable: {{some_variable}}
{{/if}}

根据Mustache文档,转换后应该如下所示:

{{#some_variable}}
<p>This text uses variable: {{some_variable}}
{{/some_variable}}

问题在于Postmark的Mustachio使用了范围(https://github.com/wildbit/mustachio/wiki#scoping),所以在这种情况下它需要遵循JSON模型:

{
    "some_variable": {
        "some_variable": "some_variable_value"
    }
}

而不是

{
    "some_variable": "some_variable_value"
}

有谁知道如何关闭Mustachio的范围,所以它使用了预期的模范JSON模型?到目前为止,我看到的唯一解决方法(脏的)是在这个嵌套的对象形式中传递模板模型,但我已经发现它在所有情况下都不起作用。在此先感谢,任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

好的,找到了一个问题的答案。根据文档https://github.com/wildbit/mustachio/wiki#inverted-groups-or-how-to-make-placeholders,在这种情况下我应该做的是:

{{#some_variable}}
<p>This text uses variable: {{.}}</p>
{{/some_variable}}

然后发送JSON模型,如:

{
    "some_variable": "some_variable_value"
}

将导致

<p>This text uses variable: some_variable_value</p>

因此,问题的答案是使用指向标记值的 {{。}} 运算符。