Ebben a lépésben bemutatjuk a regisztrált trigger indításának módját.
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 sorának kijelölése. Az összetevő azonban tetszőleges feltétel alapján elindíthatja a triggert, például amikor egy REST-hívás miatt megváltoznak az adatok.
Ebben a példában amikor a képre kattint, az triggert indít el átadva a whoAreYou
tulajdonság aktuális értékét.
Tekintse át a render.js
fájlt, és nézze meg a SampleComponentViewModel
objektumot.
Trigger indítása:
Tekintse át a SampleComponentViewModel
objektumban azt a függvényt, amely a Sites SDK készletet hívja a trigger indításához.
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': triggerName, 'triggerPayload': { 'payloadData': 'some data here' } }); };
Most valami a felhasználói felületen szükséges a triggerindító függvény hívásához. Tekintse át a render.js
fájlt, és módosítsa a SampleComponentViewModel
objektumot a következő bejegyzéssel:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
A SampleComponentViewModel
objektumban látható az a JavaScript függvény, amelyet a képre kattintáskor hív a rendszer. Ez a függvény a Sites SDK készletet hívja azt közölve, hogy indítsa el az "imageClicked"
triggerhez definiált összes műveletet; a 2. lépésben a trigger értéke lett átadva a click
kötésből. Ez átadja a triggerPayload
egyetlen payloadData
értékét is, valamint a 'some data here'
statikus értéket. Az imageClicked
és a whoAreYou
érték megegyezik a appinfo.json
fájlban lévővel, amelyben a trigger regisztrálva lett (az előző lépésben).
A mintakódban a trigger indítása a click
adatkötéssel történik, és átkerül a trigger imageClicked
neve. A felhasználó által választott elrendezés alapján jelenleg az <scs-image>
összetevő három megjelenítése áll rendelkezésre. Annak biztosításához, hogy a trigger indítása mindegyik elrendezésnél megtörténjen, szerkessze a render.js
fájlt az alábbiak szerint.
Indítson triggereket a különböző elrendezésekből. Keresse meg a kód két bejegyzését:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}">' +
Módosítsa a kódot a következőre:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
Adja meg a triggereknek átadni kívánt adattörzset. Módosítsa a következő kódot:
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': triggerName, 'triggerPayload': { 'payloadData': 'some data here' } }); };
Ezt a kódot használja helyette:
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': triggerName, 'triggerPayload': { 'payloadData': self.imageBannerText() // pass banner text as payload } }); };
Szinkronizálja vagy töltse fel a render.js
fájlt az Oracle Content Management példánykiszolgálójára.
A kód szükséges átalakítása után most már használhatja a triggert, és a gombra kattintáskor egyéni összetevője el fogja indítani azt.
A 6. lépéshez tartozó eredmények ellenőrzése
Most már regisztrálni tudja a trigger hatására végrehajtani kívánt műveletet, és a trigger indításakor végre tudja hajtatni a műveletet:
Frissítse az oldalt webhelyén, így a Site Builder át tudja venni az összetevő módosításait.
Jelenítse meg az oldalt szerkesztési módban.
Húzza át összetevőjét az oldalra.
Nyissa meg az összetevőhöz tartozó Beállítások panelt.
A Beállítások panelen jelenítse meg a Hivatkozás lapot.
A hivatkozás típusaként válassza a Triggerműveletek elemet.
Kattintson a regisztrált imageClicked triggerre.
A párbeszédpanelen húzza át a Riasztás megjelenítése műveletet az Oldalműveletek szakaszból.
Az Üzenet mezőben jelölje ki a payloadData értéket, amely a trigger regisztrálásakor megadott adattörzs.
Zárja be a Beállítások panelt, és a Site Builder szerkesztőben váltson előnézeti módra.
Kattintson az összetevőben lévő képre.
A no message defined
szövegű riasztás jelenik meg, mivel nem adta meg a imageBannerText
értékét.
Térjen át szerkesztési módba, és nyissa meg az összetevőhöz tartozó Beállítások panelt.
Kattintson az Egyéni beállítások gombra, és írja be a Workplace értéket.
Zárja be a Beállítások panelt, és váltson előnézeti módra.
Kattintson az összetevőben lévő képre.
Ekkor a módosított Workplace
adattörzsnek kell megjelennie, amelyet a click
kötésen végrehajtott módosításából hív a rendszer.
Egy trigger elindításakor bármennyi művelet végrehajtható.
Megjegyzés:
A műveletek végrehajtására nincs előre definiált sorrend. 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.A következő témakör: 7. lépés: Műveletek regisztrálása.