odoo13 qweb(一)

Posted by Ethan on 2019-11-19

属性

qweb可以对属性进行实时计算并在输出时设置,通过t-attr来实现,有三种形式:

  • t-attr-$name可以创建一个名为$name的属性,原属性的值会被解析为新生成的属性的值
1
<div t-attr-viewaction="{{action.attrs['name']}}"/>
  • t-attf-$name与第一个类似,但它的值是一个格式化字符串而不是表达式,一般用于字符+变量组合
1
2
3
4
5
<h2 t-attf-class="oe_header #{action.attrs.string ? '' : 'oe_header_empty'}">
<span class="oe_header_txt" t-attr-viewaction="{{action.attrs['name']}}">
<t t-esc="action.attrs.string"/>
</span>
</h2>
  • t-att=pair如果参数是元组或2个元素的数组,那么第一个项就作为属性名,第二个作为属性值
1
2
3
<div t-att="['a', 'b']"/>
<!-- # 输出 -->
<div a="b"></div>
  • t-att=mapping如果参数是映射表,每个键值对会生成一个属性
1
2
3
<div t-att="{'a': 1, 'b': 2}"/>
<!-- 输出 -->
<div a="1" b="2"></div>