Mandrill API-处理表中的每个循环

时间:2018-10-04 14:45:54

标签: php html handlebars.js mailchimp mandrill

我使用Mandrill API通过PHP发送我的交易邮件。

现在我遇到了问题,当我尝试遍历多个变量时,仅显示最后一个变量。

这是我的global_merge_vars变量

array(
        array(
            'name' => 'products',
            'content' => array(
                array(
                    "name" => "Product 1",
                    "price" => "65€"
                ),
                array(
                    "name" => "Product 2",
                    "price" => "65€"
                ),
                array(
                    "name" => "Product 3",
                    "price" => "65€"
                )
            )               
        )
    );

我的问题是使用数组作为内容粘贴到产品部分的。

因此,如果我尝试以下操作:

{{#each products}}
  {{name}} - {{price}}<br>
{{/each}}

我知道

Product 1 - 65€
Product 2 - 65€
Product 3 - 65€

到目前为止很好...

但是,如果我尝试将整个内容包装在一个表中,我总是只会得到显示的最后一个数组元素...

<table>
  {{#each products}}
    <tr>
      <td>{{name}} - {{price}}</td>
    </tr>
    {{/each}}
</table>

结果:

Product 3 - 65€

实际上,我认为这只是我这边的一个愚蠢的错误,但是现在,我不知道出了什么问题!

因此,在此先感谢大家的帮助:)

___________________更新________________________

我还发现,如果我将整个表放入循环中,则可以正常工作,如下所示:

{{#each products}}
  <table>
    <tr>
      <td>{{name}} - {{price}}</td>
    </tr>
  </table>
{{/each}}

但是那不是我真正想要的:)

1 个答案:

答案 0 :(得分:0)

以前从未使用过车把,所以如果我完全错过了某些东西,请原谅我,但是我很感兴趣并尝试复制。

把手的版本是:4.0.12。

HTML:

<script id="header" type="text/x-handlebars-template">

    <table>
        {{#each content}}
             <tr>
                <td>{{name}} - {{price}}</td>
            </tr>
        {{/each}}
    </table>
</script>

Js(我只是在您的阵列上运行json_encode()):

<script>
var products = [
    {
        "name": "products",
        "content": [
            {"name": "Product 1", "price": "65"},
            {"name": "Product 2", "price": "65"},
            {"name": "Product 3", "price": "65"}
        ]
    }
];
var theTemplateScript = $("#header").html();
var theTemplate = Handlebars.compile(theTemplateScript);

$(document.body).append(theTemplate(products));

</script>

并获得了预期的输出:

Product 1 - 65
Product 2 - 65
Product 3 - 65