Komponent môže zahŕňať spúšťače, ktoré vykonajú akcie v iných komponentoch. Spúšťače musíte zaregistrovať, aby ich komponenty mohli volať.
Komponent poskytuje payload pre spúšťač, ktorý sa odovzdá do každej akcie vykonanej pri vyvolaní spúšťača. Môžete vybrať, ktoré akcie sa vykonajú pre jednotlivé spúšťače. Komponenty vytvorené tak, aby spolupracovali, môžu automaticky vyvolať spúšťače a vyvolať akcie bez interakcie používateľa.
Registrácia spúšťačov
V prípade vlastného komponentu sa spúšťače registrujú ako súčasť dát registrácie pre komponent. Ak chcete pridať spúšťač, pridajte v poli vlastnosti "triggers"
všetky spúšťače, ktoré komponent podporuje. Je tiež potrebné zadať payload podporovaný komponentom, aby bolo možné vytvoriť používateľské rozhranie, ktoré používateľom umožňuje mapovať hodnoty v rámci payload k vlastnostiam podporovaným príslušnou akciou.
appinfo.json
a skontrolujte záznam "triggers":[],
:
"triggers": [{ "triggerName": "helloWorldWhoAreYou", "triggerDescription": "Show Who I Am", "triggerPayload": [{ "name": "whoAreYou", "displayName": "Who I Am" }] }],
Synchronizujte súbor so serverom lokality.
V tomto vzorovom zázname spúšťača ste definovali názov spúšťača triggerName
("helloWorldWhoAreYou"
). Hodnota názvu musí byť jednoznačná. K spúšťaču ste potom pridali popis ("Show Who I Am"
), ktorý sa použije v dialógovom okne používateľského rozhrania na zobrazenie spúšťača. Napokon ste definovali payload s jednou hodnotou pre spúšťač. Používatelia môžu vybrať záznamy v tomto payload a mapovať ich k poliam v akcii.
Po registrácii by sa spúšťač mal zobrazovať a byť k dispozícii na výber na karte Prepojenie na paneli Nastavenia pre váš komponent.
Vyvolanie spúšťačov
Komponent môže kedykoľvek vyvolať spúšťač. Spúšťač sa zvyčajne vyvolá interakciou používateľa, ako je napríklad kliknutie na tlačidlo alebo výber riadka v tabuľke. Komponent môže vyvolať spúšťač na základe ľubovoľného kritéria, napríklad pri zmene dát v dôsledku volania rozhrania REST API. Po vyvolaní spúšťača môžete vykonať ľubovoľný počet akcií.
render.js
a pridajte funkciu JavaScript do objektu viewModel
, ktorý bude volať súpravu Sites SDK na vyvolanie spúšťača.
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': 'helloWorldWhoAreYou', 'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"} }); };
-edit template.html
) a pridajte tlačidlo pred položku </div>
.
<button data-bind="click raiseTrigger">Who Am I?</button>
Synchronizujte alebo nahrajte súbor render.js
na server inštancie služby Oracle Content Management.
V objekte ViewModel
ste vytvorili funkciu JavaScript, ktorá sa volá pri kliknutí na tlačidlo. Táto funkcia volá súpravu Sites SDK a dá jej príkaz na spustenie všetkých akcií definovaných pre spúšťač "helloWorldWhoAreYou"
. Odovzdá sa tiež cez payload triggerPayload
, ktorý má jediné pole, "whoAreYou"
. Hodnoty "helloWorldWhoAreYou"
a "whoAreYou"
sa zhodujú s hodnotami, ktoré ste zadali pri registrácii spúšťača v predchádzajúcom kroku.
Poznámka:
Neexistuje žiadne vopred definované poradie, v akom sa má určitá akcia vykonať. Každá akcia sa volá v poradí, v akom je uvedená v zozname, ale pred volaním nasledujúcej akcie sa nečaká na dokončenie predchádzajúcej akcie. Ak akcia vykoná asynchrónne volanie, nemusí sa dokončiť pred vykonaním nasledujúcej akcie.