Angi handlinger

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:

  1. Rediger filen 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": ""
      }]
    }]
  2. 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.

Når du skal lytte etter meldingen 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 til ViewModel når funksjonen utføres.