“使用t-attf进行属性字符串替换”的版本间的差异
来自Odoo大V社-odoo中文开发手册
(未显示另一用户的1个中间版本) | |||
第9行: | 第9行: | ||
作为一个更详细的例子,我们可以使用这个指令来动态更改截止日期的颜色,以便过期日期以红色显示。 | 作为一个更详细的例子,我们可以使用这个指令来动态更改截止日期的颜色,以便过期日期以红色显示。 | ||
− | + | 为此,在看板卡片中用以下内容替代 | |
<nowiki> <field name="date_deadline"/>: | <nowiki> <field name="date_deadline"/>: | ||
第22行: | 第22行: | ||
小写符号 <, 不允许在表达式出现,我们选择不大于等于;或者使用<来替代 | 小写符号 <, 不允许在表达式出现,我们选择不大于等于;或者使用<来替代 | ||
+ | |||
+ | 上一节:[[QWeb JavaScript评估上下文]] 下一节:[[使用t-att作为动态属性]] |
2018年5月9日 (三) 06:36的最新版本
我们的看板卡片使用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 类不存在,被用来更好地解释这一点。
提示:
小写符号 <, 不允许在表达式出现,我们选择不大于等于;或者使用<来替代
上一节:QWeb JavaScript评估上下文 下一节:使用t-att作为动态属性