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.