Du kan angive, at en komponent skal bruge registrering af handlinger, så den kan slippes på en side, der udfører handlinger i komponenten.
Registrere handlinger
Der kaldes handlinger på komponenter, når der udløses triggere. En komponent kan registrere et hvilket som helst antal handlinger og også definere det payload, som handlingen understøtter. Når brugerne vælger en handling, kan de udfylde det payload, der skal videregives til handlingen.
Ligesom du kan registrere triggere, kan du registrere handlinger, som din komponent understøtter, i appinfo.json
-registreringsdataene for dit tema.
Her er et eksempel på, hvordan du registrerer en handling:
appinfo.json
for komponenten, og opdater posten "actions":[],
.
"actions": [{ "actionName": "helloWorldChangeWhoIAm", "actionDescription": "Change Who I Am", "actionPayload": [{ "name": "whoAreYou", "description": "Who are you?", "type": { "ojComponent": { "component": "ojInputText"} }, }, "value": "" }] }]
Når handlingen er registreret, er den synlig i den handlingsdialogboks, der kaldes, når du klikker på en trigger på fanen Link i indstillingspanelet for komponenten.
Udføre handlinger
Når en handling er registreret, kan du slippe komponenter på den side, der udfører handlinger i komponenten. For at en komponent kan udføre en handling, skal den lytte efter meddelelsen EXECUTE_ACTION
. Denne meddelelse omfatter også det payload, der videregives til handlingen, og hvorfra du skal udtrække de forventede værdier.
EXECUTE_ACTION
, skal du redigere filen render.js
og opdatere objektet ViewModel
med disse poster:
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); } };
Dette opretter en JavaScript-funktion til udførelse af handlingen og bruger derefter Sites-SDK'et til at kalde funktionen, hver gang meddelelsen EXECUTE_ACTION
udløses.
Handlingen kaldes, hver gang der udløses en EXECUTE_ACTION
-meddelelse, og det er op til komponenten kun at håndtere handlinger, som den er designet til at håndtere. For at gøre dette skal du kontrollere handlingens navn for at sikre, at det er en, som du kan håndtere.
Payloadet for handlingen er et array af værdier. I eksemplet antages det, at værdien er den første post i arrayet. Du skal normalt finde de ønskede payload-værdier i arrayet.
Bemærk:
Da handlings-listeneren er et callback, skal du bruge JavaScript Closure eller tilknytte funktionen for at sikre, at du har adgang tilViewModel
, når funktionen udføres.