Regiszterek¶
A regiszterek (rendezett) kulcs/érték térképek. Ezek a fő web kliens kiterjesztési pontok: az Odoo javascript keretrendszer által biztosított számos funkció egyszerűen egy regiszterbe néz, amikor szüksége van egy objektum (például mezők, nézetek, kliens műveletek vagy szolgáltatások) definíciójára. A web kliens testreszabása egyszerűen úgy történik, hogy specifikus értékeket adunk hozzá a megfelelő regiszterhez.
import { Registry } from "@web/core/registry";
const myRegistry = new Registry();
myRegistry.add("hello", "odoo");
console.log(myRegistry.get("hello"));
A regiszterek hasznos tulajdonsága, hogy fenntartanak egy alregiszterek halmazát, amelyeket a category metódussal lehet elérni. Ha az alregiszter még nem létezik, akkor azonnal létrejön. Az összes web kliens által használt regiszter ilyen módon származik egy gyökér regiszterből, amely az @web/core/registry-ben van exportálva.
import { registry } from "@web/core/registry";
const fieldRegistry = registry.category("fields");
const serviceRegistry = registry.category("services");
const viewRegistry = registry.category("views");
Regiszter API¶
- class Registry()¶
Új regisztert hoz létre. Vegye figyelembe, hogy egy regiszter egy eseménybusz, így szükség esetén hallgathat az
UPDATEeseményre. A regiszterek rendezettek: agetAllmetódus egy értéklistát ad vissza, amely a szekvenciaszámuk szerint van rendezve.- Registry.add(key, value[, options])¶
- Argumentum
key (
string()) – kulcs az új bejegyzéshezvalue (
any()) – érték az új bejegyzéshezoptions (
Object()) – opciók[options.force] (
boolean()) – ne dobjon hibát, ha a kulcs már létezik[options.sequence] (
number()) – sorszám (hasznos a bejegyzések sorrendbe állításához)
- Visszatérési érték
Nyilvántartás
Beszúr egy értéket egy adott kulcshoz. Ha a kulcs már használatban van, ez a metódus hibát dob (kivéve, ha a
forceopció igazra van állítva). Asequenceopció hasznos az érték adott pozícióba történő beszúrásához. Ez a metódus egyUPDATEeseményt is kivált.Ugyanazt a nyilvántartást adja vissza, így az
addmetódushívások láncolhatók.
- Registry.get(key[, defaultValue])¶
- Argumentum
key (
string()) – kulcs a bejegyzéshezany (
defaultValue()) – visszatérési érték, ha nincs bejegyzés a kulcshoz
Visszaadja a
keyargumentumnak megfelelő értéket. Ha a regiszter nem tartalmazza ezt a kulcsot, akkor ez a metódus adefaultValueértéket adja vissza, ha meg van adva, vagy hibát dob, ha nincs.
- Registry.contains(key)¶
- Argumentum
key (
string()) – kulcs a bejegyzéshez
- Visszatérési érték
logikai
Visszaadja
trueértéket, ha akeyjelen van a regiszterben
- Registry.getAll()¶
- Visszatérési érték
bármilyen[]
Visszaadja a regiszter összes elemének listáját. A lista a sorszámok szerint van rendezve.
- Registry.remove(key)¶
- Argumentum
key (
string()) – a bejegyzés kulcsa, amelyet el kell távolítani
Eltávolít egy kulcs/érték párt a regiszterből. Ez a művelet egy
UPDATEeseményt vált ki.
- Registry.category(subcategory)¶
- Argumentum
subcategory (
string()) – az alkategória neve
- Visszatérési érték
Nyilvántartás
Visszaadja az
subcategory-hoz társított alregisztert. Ha még nem létezik, az alregiszter azonnal létrejön.
Referencia lista¶
Kategória |
Tartalom |
|---|---|
megvalósítás az összes elérhető hatásra |
|
segédfüggvények az értékek formázására (többnyire mezőértékekhez használatos) |
|
felső szintű komponensek |
|
segédfüggvények az értékek elemzésére (többnyire mezőértékekhez használatos) |
|
minden szolgáltatás, amelyet aktiválni kell |
|
a navigációs sáv szerviztálcájában megjelenített komponensek |
|
menüelemek, amelyek a felhasználói menüben jelennek meg (a navigációs sáv jobb felső sarkában) |
Hatás regiszter¶
A effects regiszter tartalmazza az összes elérhető hatás megvalósítását. További részletekért lásd a effect service szakaszt.
Formázó regiszter¶
A formatters regiszter olyan függvényeket tartalmaz, amelyek értékek formázására szolgálnak. Minden formázó a következő API-val rendelkezik:
- format(value[, options])¶
- Argumentum
value (
T | false()) – egy adott típusú érték, vagyfalse, ha nincs megadva értékoptions (
Object()) – különféle opciók
- Visszatérési érték
karakterlánc
Formáz egy értéket, és egy karakterláncot ad vissza
Lásd még
Fő komponens nyilvántartás¶
A fő komponens nyilvántartás (main_components) hasznos a legfelső szintű komponensek hozzáadásához a web kliensben. A web kliens közvetlen gyermekeként rendelkezik egy MainComponentsContainer-rel. Ez a komponens alapvetően a fő komponens nyilvántartásban regisztrált komponensek rendezett listájának élő ábrázolása.
- API
interface { Component: Owl Component class props?: any }
Például a LoadingIndicator komponenst így lehet hozzáadni a nyilvántartáshoz:
registry.category("main_components").add("LoadingIndicator", {
Component: LoadingIndicator,
});
Parser nyilvántartás¶
A parsers nyilvántartás olyan függvényeket tartalmaz, amelyek értékek elemzésére szolgálnak. Minden parser a következő API-val rendelkezik:
- parse(value[, options])
- Argumentum
value (
string()) – egy értéket reprezentáló sztringoptions (
Object()) – különféle opciók (parser specifikus)
- Visszatérési érték
T egy érvényes érték
Egy sztringet elemez és visszaad egy értéket. Ha a sztring nem képvisel érvényes értéket, a parserek hibát okozhatnak és hibákat dobhatnak.
Lásd még
Szolgáltatás-regisztráció¶
A szolgáltatás-regisztráció (kategória: services) tartalmazza az összes szolgáltatást, amelyet az Odoo keretrendszernek aktiválnia kell.
import { registry } from "@web/core/registry";
const myService = {
dependencies: [...],
start(env, deps) {
// some code here
}
};
registry.category("services").add("myService", myService);
Systray regisztráció¶
A systray a navigációs sáv jobb oldalán található zóna, amely különféle kis komponenseket tartalmaz, amelyek általában valamilyen információt jelenítenek meg (például az olvasatlan üzenetek számát), értesítéseket és/vagy lehetővé teszik a felhasználó számára, hogy interakcióba lépjen velük.
A systray regisztráció tartalmazza ezeknek a systray elemeknek a leírását, mint objektumok a következő három kulccsal:
Component: az elem osztályát képviselő komponens. Gyökérelemének<li>címkének kell lennie, különben előfordulhat, hogy nem lesz megfelelően formázva.props (opcionális): a komponensnek átadandó tulajdonságokisDisplayed (opcionális): egy függvény, amely a env-et veszi és egy logikai értéket ad vissza. Ha igaz, a systray elem megjelenik. Ellenkező esetben eltávolításra kerül.
Például:
import { registry } from "@web/core/registry";
class MySystrayItem extends Component {
// some component ...
}
registry.category("systray").add("myAddon.myItem", {
Component: MySystrayItem,
});
A systray regisztráció egy rendezett regisztráció (a sequence számmal):
const item = {
Component: MySystrayItem
};
registry.category("systray").add("myaddon.some_description", item, { sequence: 43 });
A sorszám alapértelmezés szerint 50. Ha meg van adva, ez a szám lesz használva az elemek sorrendjének meghatározására. A legalacsonyabb sorszám a jobb oldalon, a legmagasabb sorszám pedig a bal oldalon található a rendszer tálca menüjében.