odoo17开发教程(19):odoo js框架里的注册表

注册表是(有序的)键/值映射。它们是网络客户端的主要扩展点:Odoo javascript 框架提供的许多功能只需在需要某些对象(如字段、视图、客户端操作或服务)的定义时查找注册表。然后,只需在正确的注册表中添加特定值,即可定制网络客户端。
 

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

const myRegistry = new Registry();

myRegistry.add("hello", "odoo");

console.log(myRegistry.get("hello"));

注册表的一个有用功能是维护一组子注册表,这些子注册表通过类别方法获得。如果子注册表还不存在,则会即时创建。网络客户端使用的所有注册表都是从 @web/core/registry 中导出的一个根注册表中获取的。

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

const fieldRegistry = registry.category("fields");
const serviceRegistry = registry.category("services");
const viewRegistry = registry.category("views");

Registry API

class Registry()

创建一个新注册表。请注意,注册表是一个事件总线,因此如有必要,可以监听 UPDATE 事件。注册表是有序的:getAll 方法会返回一个按序列号排序的值列表。

Registry.add(key, value[, options])

参数
key (string())- 新条目关键字

value (any()) - 新条目值

options (Object()) - 选项

[options.force] (boolean()) - 如果键已存在则不抛出

[options.sequence] (number()) - 序列号(用于对条目进行排序)

返回 Registry

在特定键值处插入一个值。如果键值已被使用,该方法会出错(除非选项 force 设为 true)。选项 sequence 用于在特定位置插入值。该方法还会触发 UPDATE 事件。

会返回相同的注册表,因此添加方法可以链式调用。

Registry.get(key[, defaultValue])

返回键参数对应的值。如果注册表中不包含该键,该方法会返回 defaultValue(如果给定),否则会出错。

Registry.contains(key)

如果注册表中存在密钥,则返回 true

Registry.getAll()

返回注册表中所有元素的列表。该列表根据序列号排序。

Registry.remove(key)

从注册表中删除键/值对。此操作会触发 UPDATE 事件。

Registry.category(subcategory)

返回与子类别相关的子注册表。如果子注册表不存在,则会即时创建。

参考目录
 

Category

Content

effects

实现所有可用效果

formatters

格式化数值的实用功能(主要用于字段值)

main_components

顶级组件

parsers

解析数值的实用功能(主要用于字段值)

services

所有应激活的服务

systray

导航栏系统盘区显示的组件

user_menuitems

用户菜单(导航栏右上角)中显示的菜单项

上一篇 odoo17开发教程(18):patch的用法简介_odoo patch打补丁的方法是会同时存在的吗?-CSDN博客

下一篇 odoo17开发教程(20):odoo js框架里的systray注册表和usermenu注册表详解_odoo owl systray-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值