O componentă poate include triggere care vor executa acţiuni din alte componente. Pentru ca triggerele să fie generate de componente, trebuie să înregistraţi aceste triggere.
Componenta furnizează un payload pentru un trigger, care este transmis către orice acţiune care este executată când este generat triggerul. Puteţi selecta acţiunile care se vor executa pentru fiecare trigger. Componentele care sunt configurate să lucreze împreună pot genera automat triggere pentru executarea de acţiuni fără interacţiune din partea utilizatorului.
Înregistrarea triggerelor
În cazul unei componente personalizate, triggerele sunt înregistrate în cadrul datelor de înregistrare aferente unei componente. Pentru a adăuga un trigger, actualizaţi matricea de proprietăţi "triggers"
(triggere) cu fiecare trigger pe care îl acceptă componenta. De asemenea, trebuie să specificaţi payloadul pe care îl acceptă triggerul, astfel încât interfaţa de utilizare să poată fi configurată în aşa fel încât să permită utilizatorilor să mapeze valorile din cadrul payloadului la proprietăţile acceptate de acţiune.
appinfo.json
şi examinaţi intrarea "triggers":[],
:
"triggers": [{ "triggerName": "helloWorldWhoAreYou", "triggerDescription": "Show Who I Am", "triggerPayload": [{ "name": "whoAreYou", "displayName": "Who I Am" }] }],
Sincronizaţi fişierul cu serverul pentru site-uri.
În acest exemplu de trigger, aţi definit un parametru triggerName
("helloWorldWhoAreYou"
). Valoarea numelui trebuie să fie unică. Apoi, aţi furnizat o descriere pentru trigger ("Show Who I Am"
), care va fi utilizată de dialogul din interfaţa de utilizare pentru afişarea triggerului. În cele din urmă, aţi definit un payload cu o singură valoare pentru trigger; utilizatorii vor putea selecta intrări din acest payload şi le vor putea mapa la câmpurile din cadrul acţiunii.
După înregistrarea unui trigger, ar trebui să puteţi vedea şi selecta acel trigger când accesaţi fila Link din panoul Setări aferent componentei dvs.
Generarea triggerelor
Triggerele pot fi generate în orice moment de o componentă. În mod normal, un trigger este generat de o interacţiune a utilizatorului, cum ar fi clicul pe un buton sau selectarea unui rând dintr-un tabel. O componentă poate genera triggerul pe baza oricărui criteriu, de exemplu, când se modifică datele ca urmare a unui apel din partea API-ului REST. Puteţi executa oricât de multe acţiuni atunci când este generat un trigger.
render.js
şi adăugaţi o funcţie JavaScript în obiectul viewModel
care va apela SDK-ul Sites în vederea generării triggerului.
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': 'helloWorldWhoAreYou', 'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"} }); };
-edit template.html
) şi un buton înaintea separatorului </div>
.
<button data-bind="click raiseTrigger">Who Am I?</button>
Sincronizaţi sau încărcaţi fişierul render.js
pe serverul instanţei Oracle Content Management.
În cadrul obiectului ViewModel
, aţi creat o funcţie JavaScript care este apelată când se face clic pe buton. Această funcţie apelează SDK-ul Sites pentru a-i indica să declanşeze toate acţiunile definite pentru acest trigger "helloWorldWhoAreYou"
. De asemenea, funcţia transmite un triggerPayload
care are un singur câmp, "whoAreYou"
. Aceste valori, "helloWorldWhoAreYou"
şi "whoAreYou"
, corespund celor pe care le-aţi introdus atunci când aţi înregistrat triggerul, la pasul anterior.
Notă:
Nu există nicio ordine predefinită pentru executarea acţiunilor. Deşi fiecare acţiune va fi apelată în ordinea în care este listată, nu există nicio perioadă de aşteptare ca o acţiune să se finalizeze înainte de apelarea următoarei acţiuni. Dacă o acţiune efectuează un apel asincron, este posibil să nu se finalizeze până când este executată următoarea acţiune.