Ange triggrar

En komponent kan inkludera triggrar som exekverar åtgärder i andra komponenter. Du måste registrera triggrar för att de ska aktiveras av komponenter.

Komponenten tillhandahåller en nyttolast för en trigger, som överförs till valfri åtgärd som exekveras när triggern aktiveras. Du kan välja vilka åtgärder som ska exekveras för varje trigger. Komponenter som är byggda för att fungera tillsammans kan automatiskt orsaka triggrar för att exekvera åtgärder utan användarinteraktion.

Registrera triggrar

För en anpassad komponent registreras triggrar som en del av registreringsdata för komponenten. Om du vill lägga till en trigger ska du uppdatera egenskapsuppställningen "triggers" för varje trigger som komponenten stöder. Du måste även ange den nyttolast som triggern stöder, så att användargränssnittet kan skapas på ett sätt som ger användare möjlighet att mappa värden inom nyttolasten till egenskaper som stöds av åtgärden.

  1. Redigera filen appinfo.json och granska posten "triggers":[],:
    "triggers": [{
        "triggerName": "helloWorldWhoAreYou",
        "triggerDescription": "Show Who I Am",
        "triggerPayload": [{
          "name": "whoAreYou",
          "displayName": "Who I Am"
       }]
    }],
  2. Synkronisera filen med webbplatsservern.

I det här exemplet på triggerpost har du definierat ett triggerName ("helloWorldWhoAreYou"). Namnvärdet måste vara unikt. Du har sedan gett triggern en beskrivning ("Show Who I Am"), som används av dialogrutan i användargränssnittet för att visa triggern. Slutligen, när du har definierat en nyttolast med ett enda värde för triggern, kan användare välja poster i den här nyttolasten och mappa dem till fält i åtgärden.

När en trigger har registrerats bör du kunna se och välja triggern när du går till fliken Länk i inställningspanelen för komponenten.

Orsaka triggrar

Triggrar kan aktiveras när som helst av en komponent. Vanligtvis aktiveras en trigger av en användarinteraktion, t.ex. klick på en knapp eller val av en rad i en tabell. En komponent kan orsaka triggern baserat på valfria kriterier, t.ex. när data ändras på grund av ett REST-API-anrop. Du kan exekvera valfritt antal åtgärder när en trigger aktiveras.

Här är ett exempel på hur en trigger kan orsakas:
  1. Redigera filen render.js och lägg till en JavaScript-funktion i objektet viewModel som anropar SDK:t för webbplatser och orsakar triggern.
    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': 'helloWorldWhoAreYou', 
        'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
      });
    };
  2. Lägg till en post i användargränssnittet för att anropa funktionen som orsakar triggern (-edit template.html) och en knapp före </div>.
    <button data-bind="click raiseTrigger">Who Am I?</button>
  3. Synkronisera eller ladda upp filen render.js till servern för instansen av Oracle Content Management.

I objektet ViewModel har du skapat en JavaScript-funktion som anropas när någon klickar på knappen. Den här funktionen anropar SDK:t för webbplatser för att tala om för det att utlösa alla de åtgärder som har definierats för den här triggern "helloWorldWhoAreYou". Den överför även en triggerPayload som har ett enda fält, "whoAreYou". Dessa värden, "helloWorldWhoAreYou" och "whoAreYou", matchar de du angav när du registrerade triggern i föregående steg.

Obs!:

Det finns ingen fördefinierad ordning för när en åtgärd exekveras. Även om varje åtgärd anropas i den listade ordningen, blir det ingen väntetid medan den slutförs innan nästa åtgärd anropas. Om en åtgärd gör ett asynkront anrop har den kanske inte slutförts innan nästa åtgärd exekveras.