微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Mandrill API – Handlebar表中的每个循环

我使用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€

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

所以提前感谢大家的帮助:)

___________________UPDATE________________________

我也发现,如果我将整个表放在循环中,它会起作用,如下所示:

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

但那不是我想要的,如前所述:)

解决方法:

从来没有使用过把手,所以请原谅我,如果我完全遗漏了什么,但我很好奇,并试图重现.

把手版本是: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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐