Angi triggere

En komponent kan omfatte triggere som utfører handlinger i andre komponenter. Du må registrere triggere som skal utløses av komponenter.

Komponenten angir en nyttelast for en trigger, som sendes til en hvilken som helst handling som utføres når triggeren utløses. Du kan velge hvilke handlinger som skal utføres for hver trigger. Komponenter som er bygget slik at de fungerer sammen, kan automatisk utløse triggere som utfører handlinger uten brukersamhandling.

Registrere triggere

For en egendefinert komponent registreres triggere som en del av registreringsdataene for komponenten. Når du skal legge til en utløser, oppdaterer du matrisen for egenskapen triggers med hver trigger som komponenten støtter. Du må også angi nyttelasten som triggeren støtter, så brukergrensesnittet kan opprettes slik at brukere kan tilordne verdier i nyttelasten til egenskaper som støttes av handlingen.

  1. Rediger filen appinfo.json og vurder oppføringen "triggers":[],:
    "triggers": [{
        "triggerName": "helloWorldWhoAreYou",
        "triggerDescription": "Show Who I Am",
        "triggerPayload": [{
          "name": "whoAreYou",
          "displayName": "Who I Am"
       }]
    }],
  2. Synkroniser filen til områdetjeneren.

I dette eksemplet på triggeroppføringer har du definert triggerName (helloWorldWhoAreYou). Navneverdien må være unik. Deretter har du gitt triggeren en beskrivelse (Show Who I Am), som brukes av brukergrensesnittets dialogboks til å vise triggeren. Til slutt har du definert en enkeltverdinyttelast for triggeren. Brukere kan velge oppføringer i denne nyttelasten og tilordne dem til felt i handlingen.

Når en trigger er registrert, kan du se og velge utløseren når du går til fanen Kobling i ruten Innstillinger for komponenten.

Fremkalle triggere

Triggere kan utløses på et hvilket som helst punkt av en komponent. En trigger utløses vanligvis av en brukersamhandling, som å klikke på en kapp eller velge en rad i en tabell. En komponent kan utløse en trigger basert på hvilke som helst kriterier, som når data endres på grunn av et REST API-kall. Du kan utføre et hvilket som helst antall handlinger når en trigger utløses.

Dette er et eksempel på hvordan du utløser en trigger:
  1. Rediger filen render.js og legg til en JavaScript-funksjon i objektet viewModel som vil sende kall til Sites SDK og utløse triggeren.
    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': 'helloWorldWhoAreYou', 
        'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
      });
    };
  2. Legg til en oppføring i brukergrensesnittet som sender kall til funksjonen om å utløse triggeren (-edit template.html), og en knapp foran </div>.
    <button data-bind="click raiseTrigger">Who Am I?</button>
  3. Synkroniser eller last filen Render.js til tjeneren for Oracle Content Management-forekomsten.

I objektet ViewModel har du opprettet en JavaScript-funksjon som det sendes kall til når noen klikker på knappen. Denne funksjonen sender kall til Sites SDK og ber den utløse alle handlingene som er definert for denne triggeren, helloWorldWhoAreYou. Den sendes også via en triggerPayload som har et enkelt felt, whoAreYou. Disse verdiene, helloWorldWhoAreYou og whoAreYou, samsvarer med de du angav da du registrerte triggeren i forrige trinn.

Merknad:

Det finnes ikke noen forhåndsdefinert rekkefølge for når en handling blir utført. Selv om det sendes kall til hver handling i rekkefølgen den er oppført i, finnes det ikke noen ventetid på at den skal bli fullført, før det sendes kall til neste handling. Hvis en handling sender et asynkront kall, blir den kanskje ikke fullført før neste handling utføres.