Trin 6: Udløse triggere

I dette trin viser vi, hvor den trigger, som du så blive registreret, udløses.

Triggere kan udløses ved ethvert punkt af en komponent. Triggeren udløses typisk af en brugerinteraktion, for eksempel et klik på en knap eller valg af en række i en tabel. En komponent kan imidlertid udløse triggeren på basis af vilkårlige kriterier, for eksempel når data ændres på grund af et REST-API-kald.

I dette eksempel udløses triggeren, og den aktuelle værdi for egenskaben whoAreYou videregives, når du klikker på billedet.

Gennemgå filen render.js, og se på objektet SampleComponentViewModel.

Sådan udløses en trigger:

  1. Gennemgå funktionen i det SampleComponentViewModel-objekt, der kalder Sites-SDK for at udløse triggeren.

    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': triggerName, 
        'triggerPayload': { 
            'payloadData': 'some data here'
        }
      });
    };
  2. Nu har du brug for noget i brugerinterfacet, der kan kalde funktionen, som udløser triggeren. Gennemgå render.js-filen, og opdater objektet sampleComponentTemplate, så det indeholder denne post:

         '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +

I objektet SampleComponentViewModel kan du se den JavaScript-funktion, der kaldes, når der klikkes på billedet. Denne funktion kalder Sites-SDK for at anmode den om at udløse alle handlinger, der er defineret for triggeren "imageClicked", hvilket er den værdi, der er videregivet gennem click-tilknytningen i trin 2. Den videregiver også et triggerPayload, der indeholder et enkelt felt: payloadData og videregiver en statisk værdi, 'some data here'. Disse værdier, imageClicked og whoAreYou, matcher værdierne i appinfo.json-filen, hvor triggeren er registreret (i det foregående trin).

I eksempelkoden udløses triggeren af en datatilknytning i click-tilknytningen og videregiver triggernavnet imageClicked. Der er i øjeblikket tre gengivelser af komponenten <scs-image>, afhængigt af hvilket layout brugeren vælger. For at sikre, at triggeren udløses for alle layouts, skal du redigere render.js-filen og foretage følgende ændringer.

  • Udløs triggere fra forskellige layouts. Find de to steder med denne kode:

    '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}">' +

    Ændr koden til dette:

    '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
  • Angiv det payload, som skal videregives til triggerne. Ændr denne kode:

        self.raiseTrigger = function (triggerName) {
          SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
            'triggerName': triggerName,
            'triggerPayload': {
              'payloadData': 'some data here'
            }
          });
        };

    Brug denne kode i stedet:

        self.raiseTrigger = function (triggerName) {
          SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
            'triggerName': triggerName,
            'triggerPayload': {
              'payloadData': self.imageBannerText() // pass banner text as payload
            }
          });
        };
  • Synkroniser eller upload filen render.js til Oracle Content Management-instansserveren.

Nu hvor du har gennemgået den påkrævede kode, kan du tilkoble triggeren, så din tilpassede komponent udløser den, når der klikkes på knappen.

Kontroller resultaterne for trin 6

Du bør nu kunne registrere en handling, som skal udføres mod triggeren, og desuden få handlingen til at blive udført, når triggeren udløses:

  1. Opfrisk din side på sitet, så Site Builder kan hente ændringer af komponenten.

  2. Skift til redigeringstilstand for siden.

  3. Træk komponenten til siden, og slip den.

  4. Åbn panelet Indstillinger for komponenten.

  5. Vælg fanen Link øverst i panelet Indstillinger.

  6. Vælg Triggerhandlinger som linktype.

  7. Klik på den imageClicked-trigger, som du så blive registreret.

  8. Træk handlingen Vis varsling fra afsnittet Sidehandlinger.

  9. Vælg payloadData-værdien i feltet Meddelelse. Dette er det payload, som du angav, da du registrerede triggeren.

  10. Luk panelet Indstillinger, og skift til eksempeltilstand i Site Builder.

  11. Klik på billedet i komponenten.

    Der vises en advarsel med teksten no message defined, fordi du ikke har angivet værdien for imageBannerText.

  12. Skift til redigeringstilstand for siden, og åbn panelet Indstillinger for komponenten igen.

  13. Klik på Tilpassede indstillinger, og indtast Workplace.

  14. Luk panelet Indstillinger, og skift til eksempeltilstand for siden.

  15. Klik på billedet i komponenten.

    Nu bør det opdaterede payload Workplace blive vist. Dette payload kaldes via de ændringer, som du har foretaget af click-tilknytningen.

Du kan udføre ethvert antal handlinger, når en trigger udløses.

Bemærk:

Der er ingen foruddefineret rækkefølge for, hvornår en handling udføres. Selvom hver handling kaldes i dens rækkefølge på listen, ventes der ikke på, at den er fuldført, før den næste handling kaldes. Hvis en handling foretager et asynkront kald, bliver den måske ikke fuldført, før den næste handling udføres.

Fortsæt til Trin 7: Registrere handlinger.