Du kan angi at en komponent skal bruke handlingsregistrering, slik at den kan slippes på en side som utfører handlinger i komponenten.
Registrere handlinger
Handlinger kalles opp på komponenter når triggere fremkalles. En komponent kan registrere et hvilket som helst antall handlinger og kan definere nyttelasten handlingen støtter. Når en bruker velger en handling, kan brukeren fylle ut nyttelasten som skal sendes til handlingen.
Du kan registrere handlinger som komponenten støtter, slik du registrerer triggere, i registreringsdataene for appinfo.json
for temaet.
Her er et eksempel på hvordan du registrerer en handling:
appinfo.json
for komponenten , og oppdater oppføringen "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 registrert, blir handlingen synlig i dialogboksen for handlinger som blir aktivert når du klikker på en trigger i fanen Kobling i ruten Innstillinger for komponenten.
Utføre handlinger
Når en handling er registrert, kan du slippe komponenter på siden og utføre handlinger i komponenten. Når en komponent skal utføre en handling, må den lytte etter meldingen EXECUTE_ACTION
. Denne meldingen inneholder også nyttelasten sendt til handlingen, som du må trekke ut de forventede verdiene fra.
EXECUTE_ACTION
, som vist i det følgende eksemplet, redigerer du filen render.js
og oppdaterer objektet ViewModel
med disse oppføringene:
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); } };
Det opprettes en JavaScript-funksjon for å utføre handlingen. Deretter brukes SDK-et for områder til å kalle opp funksjonen når meldingen EXECUTE_ACTION
fremkalles.
Handlingen kalles opp hver gang meldingen EXECUTE_ACTION
fremkalles, og det er opp til komponenten å behandle bare handlingene den er utformet for å behandle. Du må derfor kontrollere navnet på handlingen og forsikre deg om at du kan behandle den.
Nyttelasten for handlingen er en matrise med verdier. I dette eksemplet forutsettes det at verdien er den første oppføringen i matrisen. Du må vanligvis finne de ønskede nyttelastverdiene fra matrisen.
Merknad:
Ettersom handlingslytteren er en tilbakekalling bør du bruke JavaScript-avslutning eller binde funksjonen tilstrekkelig for å sikre at du har tilgang tilViewModel
når funksjonen utføres.