Az összetevő olyan triggereket is tartalmazhat, amelyek a műveleteket más összetevőkben fogják végrehajtani. Az összetevők által indítható triggereket regisztrálni kell.
Az összetevő olyan adattörzset biztosít a trigger számára, amely minden olyan műveletnek átadódik, amely a trigger indításakor végrehajtódik. Megadhatja, hogy az egyes triggereknél mely műveletek végrehajtására kerüljön sor. Az együttműködésre alkalmas összetevők automatikusan elindíthatják a triggereket, hogy felhasználói beavatkozás nélkül végrehajthassák a műveleteket.
Triggerek regisztrálása
Egyéni összetevő esetében a triggerek regisztrálása az összetevő adatainak regisztrációja részeként megy végbe. Trigger hozzáadásához módosítsa a "triggers"
tulajdonságtömböt az összetevő által támogatott minden egyes triggerrel. Meg kell adnia a trigger által támogatott adattörzset is egy olyan felhasználói felület létrehozásához, amely segítségével a felhasználók leképezhetik az adattörzsben lévő értékeket a művelet által támogatott tulajdonságokra.
appinfo.json
fájlt, és ellenőrizze a "triggers":[],
bejegyzést:
"triggers": [{ "triggerName": "helloWorldWhoAreYou", "triggerDescription": "Show Who I Am", "triggerPayload": [{ "name": "whoAreYou", "displayName": "Who I Am" }] }],
Szinkronizálja a fájlt a webhelyek kiszolgálójához.
Ebben a minta triggerbejegyzésben egy triggerName
nevet definiált ("helloWorldWhoAreYou"
). A név értékének egyedinek kell lennie. Utána megadta a trigger leírását ("Show Who I Am"
), amelyet a felhasználói felületi párbeszéd használ a trigger megjelenítéséhez. Végül definiált a trigger számára egy egyetlen értéket tartalmazó adattörzset, amelyben majd a felhasználók kiválaszthatják a bejegyzéseket, és leképezhetik azokat a műveletben lévő mezőkre.
Miután regisztrált egy triggert, megtekintheti és kiválaszthatja azt, ha az adott összetevő Beállítások paneljének Hivatkozás lapjára lép.
Triggerek indítása
Az összetevő bármely pontnál elindíthatja a triggereket. Általában a triggert egy felhasználói beavatkozás indítja el, például egy gombra kattintás vagy egy táblázat egyik sorának a kiválasztása. Egy összetevő bármilyen feltétel alapján elindíthatja a triggert, például amikor egy REST API hívása miatt megváltoznak az adatok. Egy trigger elindításakor bármennyi művelet végrehajtható.
render.js
fájlt, és adjon hozzá egy olyan JavaScript függvényt a viewModel
objektumban, amely meghívja a Sites SDK-t, ami elindítja a triggert.
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': 'helloWorldWhoAreYou', 'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"} }); };
-edit template.html
) és egy gombot a következő előtt: </div>
.
<button data-bind="click raiseTrigger">Who Am I?</button>
Szinkronizálja vagy töltse fel a render.js
fájlt az Oracle Content Management példánykiszolgálójára.
A ViewModel
objektumban létrehozott egy JavaScript függvényt, amelyet a gombra kattintással hívott meg. Ez a függvény meghívja a Sites SDK-t, és arra utasítja, hogy indítsa el a "helloWorldWhoAreYou"
triggerhez definiált összes műveletet. Átmegy egy triggerPayload
adattörzsön is, ami egyetlen "whoAreYou"
mezőt tartalmaz. A "helloWorldWhoAreYou"
és a "whoAreYou"
értéke megegyezik azokkal az értékekkel, amelyeket az előző lépésben a trigger regisztrálásakor adott meg.
Megjegyzés:
Nincs előre definiált sorrend, hogy mikor hajtódjon végre egy művelet. Habár az egyes műveletek a felsorolt sorrendben lesznek meghívva, a rendszer nem várja meg az aktuális művelet befejeződését, mielőtt meghívná a következő műveletet. Ha egy művelet aszinkron hívást hajt végre, nem fejeződhet be a következő művelet végrehajtása előtt.