I dette trinnet skal vi vise hvordan triggeren du så ble registrert, initieres.
Triggere kan utløses på et hvilket som helst punkt av en komponent. En trigger initieres vanligvis av en brukersamhandling, for eksempel ved at brukeren klikker på en knapp eller velger en rad i en tabell. Komponenten kan imidlertid initiere triggeren basert på hvilke som helst kriterier, for eksempel når data endres på grunn av et REST-kall.
Når du klikker på bildet i dette eksemplet, initierer det en trigger som sender den gjeldende verdien for egenskapen whoAreYou
.
Gjennomgå filen render.js
, og se på objektet SampleComponentViewModel
.
Slik initierer du en trigger:
Gjennomgå funksjonen i objektet SampleComponentViewModel
som kaller SDK-et for Områder slik at triggeren initieres.
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': triggerName, 'triggerPayload': { 'payloadData': 'some data here' } }); };
Nå trenger du noe i brukergrensesnittet som kan kalle funksjonen som initierer triggeren. Gjennomgå filen render.js
, og oppdater objektet sampleComponentTemplate
slik at det får denne oppføringen:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
I objektet SampleComponentViewModel
ser du JavaScript-funksjonen som kalles når det klikkes på bildet. Denne funksjonen kaller SDK-et for Områder og ber det om å utløse alle handlingene som er definert for triggeren "imageClicked"
, som er verdien som ble sendt inn fra click
-bindingen i trinn 2. Den sendes via en triggerPayload
som har enkeltfeltet payloadData
, og sendes via en statisk verdi kalt 'some data here'
. De to verdiene imageClicked
og whoAreYou
samsvarer med verdiene i filen appinfo.json
, der triggeren er registrert (i forrige trinn).
I eksempelkoden blir triggeren initiert av en databinding for click
-bindingen og triggernavnet imageClicked
sendt inn. Det finnes for øyeblikket tre gjengivelser av komponenten <scs-image>
basert på oppsettet som brukeren velger. Du kan sikre at triggeren blir initiert for hvert av oppsettene, ved å redigere filen render.js
og gjøre følgende endringer.
Initier triggere fra ulike oppsett. Finn de to oppføringene av denne koden:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}">' +
Endre koden til dette:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
Angi nyttelasten som skal sendes til triggerne. Slik endrer du denne koden:
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': triggerName, 'triggerPayload': { 'payloadData': 'some data here' } }); };
Bruk denne koden 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 last opp filen Render.js
til tjeneren for Oracle Content Management-forekomsten.
Nå som du har gjennomgått den nødvendige koden, kan du koble til triggeren slik at den egendefinerte komponenten initierer den når det klikkes på knappen.
Kontrollere resultatene for trinn 6
Nå skal du kunne registrere en handling som blir utført mot triggeren, og få handlingen til å bli utført når triggeren initieres:
Oppfrisk siden på området ditt slik at områdebyggeren kan plukke opp endringer av komponenten.
Sett siden i redigeringsmodus.
Dra og slipp komponenten din på siden.
Åpne ruten Innstillinger for komponenten.
Velg fanen Kobling øverst i ruten Innstillinger.
Velg Triggerhandlinger som koblingstype.
Klikk på triggeren imageClicked som du så ble registrert.
I dialogboksen drar du handlingen Vis varsel fra delen Sidehandlinger.
I feltet Melding velger du verdien payloadData, som er nyttelasten du angav da du registrerte triggeren.
Lukk ruten Innstillinger, og bytt til forhåndsvisningsmodus i områdebyggeren.
Klikk på bildet i komponenten.
Varselet no message defined
vises fordi du ikke har angitt verdien imageBannerText
.
Sett siden i redigeringsmodus, og åpne ruten Innstillinger for komponenten igjen.
Klikk på Egendefinerte innstillinger, og angi Workplace.
Lukk ruten Innstillinger, og bytt til forhåndsvisningsmodus for siden.
Klikk på bildet i komponenten.
Den skal nå vise den oppdaterte nyttelasten Workplace
, som startes av endringen du gjorde i click
-bindingen.
Du kan utføre et hvilket som helst antall handlinger når en trigger utløses.
Merknad:
Det finnes ingen 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.Gå videre til Trinn 7: Registrere handlinger.