带有把手的Mandrill API"每个循环"不工作

时间:2015-04-12 09:53:15

标签: go mandrill

使用Mandrill API发送交易时事通讯时出现问题。我为模板参数选择了Handlebars。用户名已正确显示,但列表中的数据(帖子标题)为空。如果我做错了,请帮忙说明。谢谢!

模板如下,发送到端点/messages/send.json

func genHTMLTemplate() string {
    return "code generated template<br>" +
        "Hi {{name}}, <br>" + 
        "{{#each posts}}<div>" +
        "TITLE {{title}}, THIS {{this}}<br>" +
        "</div>{{/each}}"
}

mandrillapp.com中“设置”面板中的API日志显示参数:

{
"key": "xxxxxxxxxx",
"message": {
        :
    "merge_language": "handlebars",
    "global_merge_vars": null,
    "merge_vars": [
        {
            "rcpt": "xxxxxx@gmail.com",
            "vars": [
                {
                    "name": "posts",
                    "content": [
                        {
                            "title": "title A"
                        },
                        {
                            "title": "title B"
                        },
                    ]
                },
                {
                    "name": "name",
                    "content": "John Doe"
                }
            ]
        }
    ],
      :
    },
    :
}

以下是收到的电子邮件。 &#34;标题A&#34;和&#34;标题B&#34;预计在&#34; TITLE&#34;。

之后
code generated template
Hi John Doe,
TITLE, THIS Array
TITLE, THIS Array

4 个答案:

答案 0 :(得分:3)

Mandrill决定用一些可怕的,可怕的名字创建自定义车把助手:

https://mandrill.zendesk.com/hc/en-us/articles/205582537-Using-Handlebars-for-Dynamic-Content#inline-helpers-available-in-mandrill

如果您的对象恰好有titleurl的键,那么

titleurl肯定会让您感到悲伤。为什么他们没有为toTitleCaseencodeUrl之类的帮助者命名。

就数组和#each而言,您可以使用{{this.title}}代替{{title}}解决此问题。

答案 1 :(得分:1)

在使用Mandrill的示例代码here进行测试后,我发现关键字“标题”不起作用。 Dunno的原因(Mandrill的保留关键字?),但用“title1”,“titleX”或其他东西替换它可以正确呈现。

{
    "name": "posts",
    "content": [
        {
           "title": "blah blah"  // "title1" or something else works
        },
}

答案 2 :(得分:1)

使用把手作为合并语言&#39; title&#39;是在把手中使用的保留的helpername,它使您的文本成为标题案例。如果您默认只执行{{title}},则将其视为标题为空文本。尝试给它{{title title}}哪个应该有效或将键名更改为其他东西(如果你不想在标题的情况下你的标题)

答案 3 :(得分:1)

https://mandrill.zendesk.com/hc/en-us/articles/205582537-Using-Handlebars-for-dynamic-content 使用此链接可以使用全局变量轻松使用代码中的句柄。