【发布时间】:2021-11-16 07:49:19
【问题描述】:
我在使用 QWeb 引擎和布尔 HTML 属性时遇到问题。
我知道在 QWeb 渲染引擎中我可以使用t-attf-{attribute name} 来将attribute name 的值设置为格式字符串。问题是没有记录的方式(或者至少我无法在文档中找到它)如何根据上下文中的表达式或变量设置布尔属性。
问题是当使用boolean attributes:
如果一个布尔属性存在,它的值为真,如果它不存在,它的值为假。
所以我不能使用t-attf-checked,因为使用t-attf-checked="" 会将checked="" 放入标签中。以下也将评估为true,因为标签中标签的简单外观将评估为true:
checked=""checked="0"checked="false"
例如,假设我有一个包含多个输入的单选列表和一个名为elem_num 的上下文变量。根据elem_num 的值,单选列表的输入应具有布尔属性checked。
<input class="custom-control-input" type="radio" t-attf-name="radio-1" t-attf-id="radio-1" value="1"/>
<input class="custom-control-input" type="radio" t-attf-name="radio-2" t-attf-id="radio-2" value="2"/>
<input class="custom-control-input" type="radio" t-attf-name="radio-3" t-attf-id="radio-3" value="3"/>
elem_num == 0 时应选中第一个单选按钮,elem_num == 1 时应选中第二个单选按钮,elem_num == 2 时应选中第三个。
如何在不涉及任何 JavaScript 代码的情况下实现这一点?我正在使用 Odoo 14。
感谢任何帮助。
【问题讨论】: