odoo17开发教程(20):odoo js框架里的systray注册表和usermenu注册表详解

 Systray系统盘注册表
 

系统盘是导航栏右侧的区域,包含各种小型组件,通常显示某种信息(如未读邮件数量)、通知和/或让用户与之互动。

系统托盘注册表包含这些系统托盘项的说明,这些说明是带有以下三个键的对象:

组件:表示项目的组件类。其根元素应为 <li> 标记,否则可能无法正确设置样式。

props(可选):应赋予组件的道具

isDisplayed(可选):接收 env 并返回布尔值的函数。如果为 true,则显示系统盘项。否则将被删除。

例子:

import { registry } from "@web/core/registry";

class MySystrayItem extends Component {
    // some component ...
}

registry.category("systray").add("myAddon.myItem", {
    Component: MySystrayItem,
});

const item = {
    Component: MySystrayItem
};
registry.category("systray").add("myaddon.some_description", item, { sequence: 43 });

 Usermenu用户菜单注册表

用户菜单注册表(类别:user_menuitems)包含打开用户菜单(右上角带有用户名的导航栏元素)时显示的所有菜单项。

用户菜单项由一个函数定义,该函数接收 env 并返回一个普通对象,其中包含以下信息:

  • description:菜单项文本、
  • href:(可选)如果给定(且为真),项目文本将被放入带有给定属性 href 的标签中、
  • callback:选中项目时调用的回调、
  • hide:(可选)表示是否隐藏项目(默认值:false)、
  • sequence:(可选)决定项目在其他下拉菜单项目中的排名(默认值:100)。

用户菜单每次打开时都会调用定义项的所有功能。

例如:

import { registry } from "@web/core/registry";

registry.category("user_menuitems").add("my item", (env) => {
    return {
        description: env._t("Technical Settings"),
        callback: () => { env.services.action_manager.doAction(3); },
        hide: (Math.random() < 0.5),
    };
});

上一篇 odoo17开发教程(19):odoo js框架里的注册表-CSDN博客

下一篇 odoo17开发教程(21):数据文件详解_odoo17官网代码指定数据库配置文件的代码在哪里-CSDN博客

  • 18
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值