我们正在使用mailJet构建我们的电子邮件,到目前为止,它运行得很好。我们当前的问题是,我们希望在一个循环(所以嵌套的循环)中有一个循环,第一个循环工作得很好,第二个内循环工作得很好,但是第三个循环不再工作了:
{% for trip in var:trips %}
{{trip.id}}
{% for tripSegment in trip.tripSegments %}
{% for tripBreak in tripSegment.breaks %}
{{tripBreak.duration}}
{% endfor %}
{% endfor %}
Distance: {{trip.totalDistance}} km
{% endfor %}这是我们的模板。如果我用断口去掉内环,一切都很好。
如果启用模板错误报告,则会收到以下消息:
X-MJ-ErrorMessage: "tripSegment.breaks" is not an array value但是,如果我试图用{{tripSegment.breaks}打印它,就会得到消息:
X-MJ-ErrorMessage: Array values cannot be printed: tripSegment.breaks而且这个字段显然是一个数组,比如trips或tripSegments,所以基本上它应该能工作。
对于MailJet中的嵌套循环,我做错了什么?
编辑:
我发送给Mailjet的对象结构如下所示:
"Vars": {
"trips": [
"id": 1,
"tripSegments":[
{
"id":2,
"distance": 100,
"breaks":[
{
"duration":15
},{
"duration":20
}
]
},{
"id":3,
"distance": 200,
"breaks":[
{
"duration":10
},{
"duration":30
}
]
},{
"id":4,
"distance": 200,
"breaks":[
]
},
]
]
}发布于 2016-10-13 07:17:53
当我们与MailJet Support 1进行讨论时,发现MailJet的WYSIWYG编辑器中存在一个bug。
如果在HTML块中使用,而不是直接在WYSIWYG编辑器中使用,则多个嵌套循环可以工作。
他们正在做这件事。
发布于 2016-10-06 14:02:15
如果要在tripSegment.breaks上循环,则应该将其表示为数组而不是对象。
我成功地创建了一个为我工作的示例,其值与您使用的值相同。
'Vars' => [
"trips"=>[
'trips1' =>[
'id'=> 123,
'totalDistance'=> 10,
'tripSegments' => [
['breaks' =>[['duration'=>1],['duration'=> 2]]],
['breaks' =>[['duration'=>1],['duration'=> 2]]],
['breaks' =>[['duration'=>1],['duration'=> 2]]]
]
]
]
]发布于 2017-03-20 17:49:01
我发现这与WYSIWYG编辑器无关,在Mailjet的模板语言中仍然是一个bug,而且很容易复制。使用Postman或其他API测试工具向发送端点发送以下JSON (确保通过Basic Auth添加API密钥凭据):
POST https://api.mailjet.com/v3/send
{
"FromEmail": "me@example.com",
"FromName": "Me",
"Subject": "Test",
"MJ-TemplateLanguage": true,
"MJ-TemplateErrorReporting": "me@example.com",
"MJ-TemplateErrorDeliver": "deliver",
"Recipients": [
{ "Email": "me@example.com" }
],
"Html-part": "<ul>{% for project in var:commissions.projects %}<li>{{project.name}}</li>{% endfor %}</ul>",
"Vars": {
"commissions": { "total": "235,000", "projects": [] }
}
}您将得到一个错误报告,通过电子邮件返回给您的内容No value for "commissions.projects",而不是它只是简单地通过循环默默。
https://stackoverflow.com/questions/39869123
复制相似问题