查看“使用t-call插入其他模板”的源代码
←
使用t-call插入其他模板
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看并复制此页面的源代码:
Qweb模板可以成为可复用的HTML代码段,可以被插入其他模板。我们不需要反复重复相同的HTML块,就可以设计出复杂的用户界面视图。 可复用的模板定义在<模板>标记并且被顶层元素以t-name 而不是kanban-box标识。这些其他模板可以通过t-call指令包含。在同一个插件模块的某个地方,或在不同的插件。在同一看板视图、同一个插件模块的某个地方中或在不同的插件中,声明的模板是正确的。 跟进者头像列表有时候被隔离到一个可重用片段,让我们可以使用子模板重做它。我们应从增加另外的模板到XML文件中开始,<nowiki> 在 <templates> 元素内部, <t tname="kanban-box"> </nowiki>节点之后,如下所示: <nowiki><t t-name="follower_avatars"> <div> <t t-foreach="record.message_parter_ids.raw_value.slice(0, 3)" t-as="rec"> <img t-att-src="kanban_image('res.partner', 'image_small', rec)" class="oe_avatar" width="24" height="24" /> </t> </div></t> </nowiki> 从kanban-box调用主模板很简单。不需要<div>元素包括for each指令,我们应该使用以下内容: <nowiki><t t-call="follower_avatars" /></nowiki> 为调用其他插件模块中定义的模板,我们需要使用module.name全标识符,就像调用其它视图。例如,此段代码可以使用完整标识符来引用todo_kanban.follower_avatars. 调用的模板运行在与调用者相同的上下文中,所以在调用者中可用的任何变量名,在处理被调用模板时也可用。 一个更简洁的选择是传递参数到调用模板。这通过设置内部变量t-call标记实现。这些将仅在子模板上下文中进行计算并可用,并且不会在调用者的上下文中存在。 我们可以使用这个获得最大数量的跟进者头像,这个头像呗调用者设置,而无需通过子模板中不易修改的编码。首先,我们需要用变量arg_max代替固定值3,例如: <nowiki><t t-name="follower_avatars"> <div> <t t-foreach="record.message_parter_ids.raw_value.slice(0, arg_max)" t-as="rec"> <img t-att-src="kanban_image('res.partner', 'image_small', rec)" class="oe_avatar" width="24" height="24" /> </t> </div> </t> </nowiki> <nowiki><t t-call="follower_avatars"> <t t-set="arg_max" t-value="3" /></t> </nowiki> 然后,在执行子模板调用时定义该变量的值如下: 在t-call元素的整个内容也可通过改变变量值0使其对子模板可用。我们可以定义一个可以在子模板中使用的HTML代码片段,而不是通过参数变量<nowiki><t traw="0" /></nowiki>.
返回至
使用t-call插入其他模板
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
odoo 中文开发手册
odoo 开发参考
odoo 实施笔记
Odoo 最佳方案
关于 OdooV
Odoo FAQ
工具
链入页面
相关更改
特殊页面
页面信息
友情链接
odoo官网
odoo中文网
odoo实施