使用t-attf进行属性字符串替换

来自Odoo大V社-odoo中文开发手册
95102545讨论 | 贡献2017年8月7日 (一) 23:29的版本

跳转至: 导航搜索

我们的看板卡片使用t-attf 的Qweb指令动态地设置上部<div>元素,卡片的颜色取决于color字段值。为此,使用t-attf –的 Qweb指令。

t-attf指令使用字符串替换动态生成标记属性。这允许动态生成较大的字符串,例如URL地址或CSS类名。

该指令寻找表达式块,这些块将被计算并被计算的结果替换。这些串被模板:And 或 #{ and }分割,块的内容可以是任何有效的JavaScript表达式,可以使用任何可用的Qweb表达式的变量,如record 和widget。

在我们的例子中,我们还使用了kanban_color() JavaScript函数,专门提供地图颜色索引值给CSS类的颜色名称。

作为一个更详细的例子,我们可以使用这个指令来动态更改截止日期的颜色,以便过期日期以红色显示。

为此,在看板卡片中用一下内容替代

 <field name="date_deadline"/>:
<li t-attf-class="oe_kanban_text_{{   record.date_deadline.raw_value and 
  !(record.date_deadline.raw_value > (new Date())) 
  ? 'red' : 'black' }}">
<field name="date_deadline"/></li>

结果, class="oe_kanban_text_red" 或者 class="oe_kanban_text_black", 这取决于最终的日期。注意,当 oe_kanban_text_red CSS 类在看板视图可用时, oe_kanban_text_black CSS 类不存在,被用来更好地解释这一点。

提示:

小写符号 <, 不允许在表达式出现,我们选择不大于等于;或者使用&lt来替代