Ange åtgärder

Du kan ange att en komponent ska dra nytta av åtgärdsregistrering, så att den kan släppas på en sida som exekverar åtgärder inom komponenten.

Registrera åtgärder

Åtgärder anropas för komponenter när triggrar aktiveras. En komponent kan registrera valfritt antal åtgärder samt definiera den nyttolast som åtgärden stöder. När en användare väljer en åtgärd kan användaren fylla i den nyttolast som ska överföras till åtgärden.

Precis som vid registrering av triggrar kan du registrera åtgärder som komponenten stöder i temats appinfo.json-registreringsdata.

Här är ett exempel på hur du registrerar en åtgärd:

  1. Redigera filen appinfo.json för komponenten och uppdatera posten "actions":[],.
    "actions": [{
      "actionName": "helloWorldChangeWhoIAm",
      "actionDescription": "Change Who I Am",
      "actionPayload": [{
        "name": "whoAreYou",
        "description": "Who are you?",
        "type": {
          "ojComponent": {
           "component": "ojInputText"}
          },
        },
        "value": ""
      }]
    }]
  2. När den väl har registrerats blir åtgärden synlig i den åtgärdsdialogruta som anropas när du klickar på en trigger på fliken Link i inställningspanelen för komponenten.

Exekvera åtgärder

När en åtgärd har registrerats kan du släppa komponenter på sidan som exekverar åtgärder i komponenten. För att en komponent ska exekvera en åtgärd måste den lyssna efter meddelandet EXECUTE_ACTION. Det här meddelandet inkluderar även den nyttolast som överförs till åtgärden, från vilken du måste extrahera de förväntade värdena.

Om du till exempel vill lyssna efter meddelandet EXECUTE_ACTION ska du redigera filen render.js och uppdatera objektet ViewModel med följande 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);
  }
};

Det här skapar en JavaScript-funktion för exekvering av åtgärden, varefter SDK:t för webbplatser används för att anropa funktionen när meddelandet EXECUTE_ACTION visas.

Åtgärden anropas när meddelandet EXECUTE_ACTION visas, och det är upp till komponenten att hantera endast de åtgärder som den har utformats för att hantera. För att göra detta måste du kontrollera åtgärdens namn för att säkerställa att den är en som du kan hantera.

Nyttolasten för åtgärden är en uppställning värden. I exemplet antas det att värdet är den första posten i uppställningen. Vanligtvis måste du hitta de nyttolastvärden du bryr dig om från uppställningen.

Obs!:

Eftersom åtgärdsavlyssnaren är ett återanrop ska du använda JavaScript Closure eller på lämpligt sätt binda funktionen för att säkerställa att du har åtkomst till din ViewModel när funktionen exekveras.