Before this change the t-call can use only receive a literal as parameters:
<t t-call="template.name17" />
This call render the template 'template.name17' with the current context.
Now, we can defined an expression with braces (same syntax that t-attf):
<t t-call="template.name{{ 10 + 7 }}" />
This call render the template 'template.name17' with the current context.
This change allows for greater flexibility for applications using qweb.
(The performance due to this change is unchanged during rendering time.)
64 lines
1.8 KiB
XML
64 lines
1.8 KiB
XML
<templates>
|
|
<t t-name="_basic-callee">ok</t>
|
|
<t t-name="_callee-printsbody"><t t-esc="0"/></t>
|
|
<t t-name="_callee-uses-foo"><t t-esc="foo"/></t>
|
|
|
|
<t t-name="basic-caller">
|
|
<t t-call="_basic-callee"/>
|
|
</t>
|
|
<result id="basic-caller">ok</result>
|
|
|
|
<t t-name="with-unused-body">
|
|
<t t-call="_basic-callee">WHEEE</t>
|
|
</t>
|
|
<result id="with-unused-body">ok</result>
|
|
|
|
<t t-name="with-unused-setbody">
|
|
<t t-call="_basic-callee">
|
|
<t t-set="qux" t-value="3"/>
|
|
</t>
|
|
</t>
|
|
<result id="with-unused-setbody">ok</result>
|
|
|
|
<t t-name="with-used-body">
|
|
<t t-call="_callee-printsbody">ok</t>
|
|
</t>
|
|
<result id="with-used-body">ok</result>
|
|
|
|
<t t-name="with-used-setbody">
|
|
<t t-call="_callee-uses-foo">
|
|
<t t-set="foo" t-value="'ok'"/>
|
|
</t>
|
|
</t>
|
|
<result id="with-used-setbody">ok</result>
|
|
|
|
<!--
|
|
postfix to call removed because Python impl appends all whitespace
|
|
following called template's root to template result (+= element.tail)
|
|
-> ends up with bunch of extra whitespace in the middle of the
|
|
generated content. Could normalize, not sure current impl can be
|
|
fixed as-is
|
|
-->
|
|
<t t-name="inherit-context">
|
|
<t t-set="foo" t-value="1"/>
|
|
<t t-call="_callee-uses-foo"/><!-- - <t t-esc="foo"/> -->
|
|
</t>
|
|
<result id="inherit-context">1<!-- - 1 --></result>
|
|
|
|
<t t-name="scoped-parameter">
|
|
<t t-call="_basic-callee">
|
|
<t t-set="foo" t-value="42"/>
|
|
</t>
|
|
<!-- should not print anything -->
|
|
<t t-esc="foo"/>
|
|
</t>
|
|
<result id="scoped-parameter">
|
|
ok
|
|
</result>
|
|
|
|
<t t-name="basic-caller">
|
|
<t t-call="{{True and '_basic-callee' or 'other'}}"/>
|
|
</t>
|
|
<result id="basic-caller">ok</result>
|
|
</templates>
|