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.
appinfo.json
og vurder oppføringen "triggers":[],
:
"triggers": [{ "triggerName": "helloWorldWhoAreYou", "triggerDescription": "Show Who I Am", "triggerPayload": [{ "name": "whoAreYou", "displayName": "Who I Am" }] }],
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.
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() + "!"} }); };
-edit template.html
), og en knapp foran </div>
.
<button data-bind="click raiseTrigger">Who Am I?</button>
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.