Komponentu můžete nastavit tak, aby využila registraci akcí, a mohla tak být umístěna na stránku, která provede akce v rámci komponenty.
Registrace akcí
Akce na komponentách jsou volány při vyvolání triggerů. Komponenta může registrovat libovolný počet akcí a také definovat datovou část, kterou akce podporuje. Když uživatel vybere akci, může vyplnit datovou část, které má být předána do akce.
Stejně jako v případě registrace triggerů můžete registrovat akce, které vaše komponenta podporuje, do registračních dat tématu v souboru appinfo.json
.
Zde je uveden příklad, jak registrovat akci:
appinfo.json
pro vaši komponentu a aktualizujte položku "actions":[],
.
"actions": [{ "actionName": "helloWorldChangeWhoIAm", "actionDescription": "Change Who I Am", "actionPayload": [{ "name": "whoAreYou", "description": "Who are you?", "type": { "ojComponent": { "component": "ojInputText"} }, }, "value": "" }] }]
Po registraci se akce zobrazí v dialogovém okně akce, které vyvoláte kliknutím na trigger na kartě Odkaz na panelu Nastavení pro vaši komponentu.
Provedení akcí
Jakmile bude akce registrována, budete moci umístit komponenty na stránku, která provádí akce v rámci komponenty. Komponenta může provést akci, pouze pokud sleduje zprávu EXECUTE_ACTION
. Tato zpráva také obsahuje datovou část, která bude předána akci, z níž musíte extrahovat očekávané hodnoty.
EXECUTE_ACTION
, upravte soubor render.js
a aktualizujte objekt ViewModel
těmito položkami:
self.executeActionListener = function (args) { // get action and payload var payload = $.isArray(args.payload) ? args.payload[0] : {}, action = args.action, actionName = action && action.actionName; // handle 'helloWorldChangeWhoIAm' actions if ((actionName === 'helloWorldChangeWhoIAm') && (payload.name === 'whoAreYou')) { self.whoAreYou(payload.value); } };
Tím dojde k vytvoření funkce jazyka JavaScript pro provedení akce a poté k použití sady SDK pro weby k volání funkce při každém vyvolání zprávy EXECUTE_ACTION
.
Akce bude volána při každém vyvolání zprávy EXECUTE_ACTION
a je na komponentě, aby zpracovala pouze ty akce, které mají být zpracovány. K tomu je nutné zkontrolovat název akce, a ujistit se tak, že se jedná o akci, kterou můžete zpracovat.
Datová část pro akci je pole hodnot. V uvedeném příkladu se předpokládá, že hodnota je první položka v poli. Obvykle je nutné v poli vyhledat hodnoty datové části, na kterých vám záleží.
Poznámka:
Vzhledem k tomu, že služba listener akce je zpětné volání, měli byste použít uzávěr jazyka JavaScript nebo náležitě svázat funkci, abyste měli při provádění funkce přístup k objektuViewModel
.