Registries¶
リージョンは(順序付け)キー/値マップです。 Odoo javascriptフレームワークによって提供される多くの機能は、オブジェクト(フィールドなど)の定義が必要なときはいつでもレジストリを調べるだけです。 ビュー、クライアントアクションまたはサービス)。 Webクライアントのカスタマイズは、単に正しいレジストリに特定の値を追加することによって行われます。
import { Registry } from "@web/core/registry";
const myRegistry = new Registry();
myRegistry.add("hello", "odoo");
console.log(myRegistry.get("hello"));
レジストリの便利な機能は、「category」メソッドによって取得されるサブレジストリのセットを維持することです。 サブレジストリがまだ存在しない場合は、その場で作成されます。 Webクライアントで使用されるすべてのレジストリは、1つのルートレジストリから取得され、@web/core/registry
にエクスポートされます。
import { registry } from "@web/core/registry";
const fieldRegistry = registry.category("fields");
const serviceRegistry = registry.category("services");
const viewRegistry = registry.category("views");
レジストリAPI¶
- class Registry()¶
新しいレジストリを作成します。レジストリはイベントバスであることに注意してください。必要に応じて、
UPDATE
イベントを聴くことができます。 Registries は順番に並べられています:getAll
メソッドはシーケンス番号に従って順序付けされた値のリストを返します。- Registry.add(key, value[, options])¶
- 引数
key (
string()
) -- キーを押します。value (
any()
) -- 新しいエントリの値options (
Object()
) -- オプション[options.force] (
boolean()
) -- キーがすでに存在するなら投げるな[options.sequence] (
number()
) -- シーケンス番号 (エントリを注文するのに便利)
- 戻り値
Registry
特定のキーに値を挿入します。 キーが既に使用されている場合、このメソッドはエラーをスローします(オプション
force
が true に設定されていない限り)。 `sequence`オプションは、特定の位置に値を挿入するのに役立ちます。このメソッドは、`UPDATE`イベントもトリガーします。同じレジストリを返すので、`add`メソッドの呼び出しをチェーンできます。
- Registry.get(key[, defaultValue])¶
- 引数
key (
string()
) -- を選択します。any (
defaultValue()
) -- キーのエントリが存在しない場合の戻り値。
key`引数に対応する値を返します。 レジストリにそのキーが含まれていない場合、このメソッドは `defaultValue
を返すか、それ以外の場合はエラーをスローします。
- Registry.contains(key)¶
- 引数
key (
string()
) -- を選択します。
- 戻り値
boolean
レジストリに
key
が存在する場合はtrue
を返します。
- Registry.getAll()¶
- 戻り値
誰でも
レジストリ内のすべての要素のリストを返します。シーケンス番号に従って順序付けされます。
- Registry.remove(key)¶
- 引数
key (
string()
) -- 削除すべきエントリのキー
レジストリからキーと値のペアを削除します。この操作は
UPDATE
イベントをトリガーします。
- Registry.category(subcategory)¶
- 引数
subcategory (
string()
) -- サブカテゴリの名前
- 戻り値
Registry
subcategory
に関連付けられたサブレジストリを返します。まだ存在しない場合は、サブレジストリはその場で作成されます。
参照リスト¶
カテゴリー |
コンテンツ |
---|---|
利用可能なすべての効果の実装 |
|
値を書式設定するユーティリティ関数 (主に項目値に使用) |
|
トップレベルのコンポーネント |
|
値を解析するユーティリティ関数 (主に項目値に使用) |
|
活性化されるべきすべてのサービス |
|
ナビゲーションバーの systraay ゾーンに表示されるコンポーネントです |
|
ユーザメニューに表示されるメニュー項目(navbarの右上) |
エフェクトレジストリ¶
effects
レジストリには、利用可能なすべてのエフェクトの実装が含まれています。詳細については、 :ref:の effect service <frontend/services/effect_registry>
のセクションを参照してください。
Formatter レジストリ¶
`formatters`レジストリには、値をフォーマットする関数が含まれています。各フォーマッタは以下のAPIを持っています:
- format(value[, options])¶
- 引数
value (
T | false()
) -- 値が指定されていない場合はfalse
を指定します。options (
Object()
) -- 様々なオプション
- 戻り値
文字列
値を書式設定し、文字列を返します
関連項目
メインコンポーネントレジストリ¶
メインコンポーネントレジストリ(main_components
)は、Webクライアントにトップレベルのコンポーネントを追加するのに便利です。webclientは、直接子として`MainComponentsContainer`を持っています。 このコンポーネントは、基本的にメインコンポーネントレジストリに登録されている順序付けされたコンポーネントのリストのライブ表現です。
- API
interface { Component: Owl Component class props?: any }
例えば、 LoadingIndicator
コンポーネントは以下のようにレジストリに追加できます。
registry.category("main_components").add("LoadingIndicator", {
Component: LoadingIndicator,
});
パーサレジストリ¶
The parsers
registry contains functions to parse values. Each parser
has the following API:
- parse(value[, options])
- 引数
value (
string()
) -- 値を表す文字列options (
Object()
) -- 様々なオプション (パーサー固有)
- 戻り値
T a valid value
文字列を解析し、値を返します。文字列が有効な値でない場合、Parserはエラーを発生させる可能性があります。
関連項目
サービスレジストリ¶
サービスレジストリ (category: services
) には、Odoo フレームワークによって有効化されるすべての services が含まれています。
import { registry } from "@web/core/registry";
const myService = {
dependencies: [...],
start(env, deps) {
// some code here
}
};
registry.category("services").add("myService", myService);
Systray registry¶
systraayは様々な小さなコンポーネントを含むナビゲーションバーの右側のゾーンです。 通常、何らかの情報(未読メッセージの数など)を表示したり、通知やユーザーがそれらとやり取りしたりすることができます。
systray
レジストリには、以下の 3 つのキーを持つオブジェクトとして、これらの systray アイテムの説明が含まれています。
Component
: アイテムを表すコンポーネントクラス。ルート要素は、<li>
タグでなければ、適切にスタイル付けされていない可能性があります。props (optional)
: コンポーネントに与えるべきpropsisdisplayed (optional)
: :ref:`env <frontend/framework/environment>`を取得し、ブール値を返す関数。 true の場合、systray 項目が表示されます。それ以外の場合は削除されます。
例:
import { registry } from "@web/core/registry";
class MySystrayItem extends Component {
// some component ...
}
registry.category("systray").add("myAddon.myItem", {
Component: MySystrayItem,
});
systray レジストリは、'シーケンス' 番号を持つ順序付きレジストリです。
const item = {
Component: MySystrayItem
};
registry.category("systray").add("myaddon.some_description", item, { sequence: 43 });
シーケンス番号のデフォルト値は50です。与えられた場合、この番号はアイテムの順序に使用されます。 一番下のシーケンスは右側、一番上のシーケンスは左側にあります。