2012-04-20 3 views

답변

8

http://template-toolkit.org/docs/manual/Syntax.html#section_Capturing_Block_Output

주 부작용 표기와 함께 구문을 사용하여 하나 개의 중요한주의. 이 경우

[% var = 'value' IF some_condition %] # does not work 

이 지시문은 (명확성을 위해 추가 간격)

[% var = IF some_condition %] 
    value 
[% END %] 

보다는

[% IF some_condition %] 
    [% var = 'value' %] 
[% END %] 

로 해석됩니다 다음 지시어는 예상 할 수대로 작동하지 않습니다 변수는 IF 블록의 출력에 할당되며, 'true'인 경우 'value'를 반환하지만 false 인 경우에는 아무것도 반환하지 않습니다. 즉, 다음 지시어는 항상 'var'을 지울 것입니다.

[% var = 'value' IF 0 %] 

이 예상되는 동작을 달성하기 위해, 지시자는 다음과 같이 기록한다 :

[% SET var = 'value' IF some_condition %] 
+0

감사합니다, 어떻게 든 완전히 문서에이 놓친 :) –