2016-10-05 2 views
0

지금까지 잘 작동하는 mailJet으로 이메일을 작성하고 있습니다. 현재 문제는 루프 내에서 하나의 루프 내에서 루프를 만들고 싶기 때문에 (첫 번째 루프가 잘 작동하는 중첩 루프) 두 번째 내부 루프가 정상적으로 작동하지만 세 번째 루프는 더 이상 작동하지 않는다는 것입니다.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: Array values cannot be printed: tripSegment.breaks 
:

X-MJ-ErrorMessage: "tripSegment.breaks" is not an array value 

을하지만 {{tripSegment.breaks}}라는 메시지를 얻을로 인쇄하려고하면

필드가 tripet 또는 tripSegments와 같이 definetly 배열이므로 기본적으로 작동해야합니다.

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":[ 
       ] 
      }, 
     ] 
    ] 
} 

답변

2

당신이 tripSegment.breaks에 루프하려는 경우,이 배열로 표현되어야하고,하지 객체.

필자가 사용하는 값과 동일한 값을 가진 샘플을 만들 수 있었다. 우리가 MailJet 지원 [1]와 토론에 있었던 것처럼

'Vars' => [ 
     "trips"=>[ 
      'trips1' =>[ 
     'id'=> 123, 
     'totalDistance'=> 10, 
     'tripSegments' => [ 
      ['breaks' =>[['duration'=>1],['duration'=> 2]]], 
      ['breaks' =>[['duration'=>1],['duration'=> 2]]], 
      ['breaks' =>[['duration'=>1],['duration'=> 2]]] 
          ] 
         ]  
        ] 
     ] 
+0

나는 나의 질문을 내 개체 구조를 보여주기 위해 조정했다. –

1

나는 이것이 WYSIWYG 에디터와 아무 상관이 없습니다 찾을 수는 Mailjet의 템플릿 언어의 버그가 남아 있고, 쉽게 재현 할 수 있습니다. 사용 우체부 또는 엔드 포인트를 보내 에 다음 JSON을 보낼 수있는 다른 API 테스트 도구 (는 기본 인증를 통해 API 키 자격 증명을 추가해야합니다) :

POST https://api.mailjet.com/v3/send

{ 
    "FromEmail": "[email protected]", 
    "FromName": "Me", 
    "Subject": "Test", 
    "MJ-TemplateLanguage": true, 
    "MJ-TemplateErrorReporting": "[email protected]", 
    "MJ-TemplateErrorDeliver": "deliver", 
    "Recipients": [ 
     { "Email": "[email protected]" } 
    ], 
    "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" 인 이메일을 통해 오류 보고서를 보냅니다.