我正在将电子邮件模板从 Mandrill 移至 Postmark,这需要将 Handlebars 转换为 Mustachio。在 Handlebars 我有这样的事情:
{{#if some_variable}}
<p>This text uses variable: {{some_variable}}
{{/if}}
Run Code Online (Sandbox Code Playgroud)
根据 Mustache 文档,转换后应该是这样的:
{{#some_variable}}
<p>This text uses variable: {{some_variable}}
{{/some_variable}}
Run Code Online (Sandbox Code Playgroud)
问题是 Postmark 的 Mustachio 使用范围(https://github.com/wildbit/mustachio/wiki#scoping),因此在这种情况下,它需要以下 JSON 模型:
{
"some_variable": {
"some_variable": "some_variable_value"
}
}
Run Code Online (Sandbox Code Playgroud)
代替
{
"some_variable": "some_variable_value"
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何关闭 Mustachio 的范围,因此它使用预期的示例性 JSON 模型?到目前为止,我看到的唯一解决方法(肮脏的)是以这种嵌套对象形式传递模板模型,但我已经发现它不适用于所有情况。提前致谢,任何帮助表示赞赏。
好的,找到了该问题的答案。根据文档https://github.com/wildbit/mustachio/wiki#inverted-groups-or-how-to-make-placeholders在这种情况下我应该做的是:
{{#some_variable}}
<p>This text uses variable: {{.}}</p>
{{/some_variable}}
Run Code Online (Sandbox Code Playgroud)
然后发送 JSON 模型,如:
{
"some_variable": "some_variable_value"
}
Run Code Online (Sandbox Code Playgroud)
会导致
<p>This text uses variable: some_variable_value</p>
Run Code Online (Sandbox Code Playgroud)
所以问题的答案是使用指向标签值的{{.}}运算符。
| 归档时间: |
|
| 查看次数: |
1263 次 |
| 最近记录: |