我使用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}}
但是那不是我真正想要的:)
答案 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