带有测试数据和数组的 Sendgrid 模板

Sendgrid templates with test data and arrays

我有一些测试数据如下所示:

{
    "firstName":"Ben",
    "products": [{
      "name": "first product",
      "position": 0
    }, {
      "name": "second product",
      "position": 1
    }, {
      "name": "third product",
      "position": 2
    }]
}

在我的模板中,我有这样的东西:

<p>Hi {{firstName}}</p>

效果很好。 现在我想遍历我的产品

所以我尝试了这个:

{{#each products}}
    {{#if this.position == 0}}
        <h1>{{this.name}}</h1>
    {{else}}    
        <h2>{{this.name}}</h2>
    {{/if}}
{{/each}}

但是没用。 我也找不到任何关于执行 if 语句的文档。我找到的最接近的是:

https://sendgrid.com/docs/ui/sending-email/using-handlebars/

它谈到 "Basic If, Else, Else If" 这表明有更高级的版本,但我找不到它的文档....

有谁知道我做错了什么吗?

PS:我的示例只是为了这个 post.

进行了简化

看起来 SendGrid 文档只是使用 Basic If... 来区别于 If with a Root 的下一部分。他们在页面上方的部分使用了相似的标题。

基于此,它们似乎没有 "if value equals" 的逻辑,只有 "if field exists",因此您需要更新 JSON 才能使用该格式,比如他们在 later examples.

您需要的是以下结构:

{{#equals city_code avl}}
        AVL
{{else}}
        Not AVL
{{/equals}}

https://sendgrid.com/docs/for-developers/sending-email/using-handlebars/#conditional-statements

{{if anything}} 只检查 anything 是真还是假;你无法将它与某物进行比较。