Mandrill API - Table 中的每个循环车把

Mandrill API - Handlebar each loop in Table

我使用 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 中,我总是只显示最后一个数组元素...

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

结果:

Product 3 - 65€

其实,我认为,这只是我这边的一个愚蠢的错误,但现在,我不知道问题出在哪里!

非常感谢大家的帮助:)

___________________UPDATE________________________

我还发现,如果我将整个 table 放入循环中,它会起作用,如下所示:

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

但这并不是我之前所说的真正想要的:)

之前从未使用过 Handlebars,所以如果我完全遗漏了什么请原谅我,但我很感兴趣并尝试重现。

Handlebars 版本为: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

这对 OP 来说可能为时已晚,但在花了几个小时试图理解这一点之后,我在 GitHub 线程上找到了解决方案。 基本上你把你的车把标签放在 HTML 这样的评论上:

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

学分:gurpreetatwal