6. lépés: Triggerek indítása

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:

  1. 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'
        }
      });
    };
  2. 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:

  1. Frissítse az oldalt webhelyén, így a Site Builder át tudja venni az összetevő módosításait.

  2. Jelenítse meg az oldalt szerkesztési módban.

  3. Húzza át összetevőjét az oldalra.

  4. Nyissa meg az összetevőhöz tartozó Beállítások panelt.

  5. A Beállítások panelen jelenítse meg a Hivatkozás lapot.

  6. A hivatkozás típusaként válassza a Triggerműveletek elemet.

  7. Kattintson a regisztrált imageClicked triggerre.

  8. A párbeszédpanelen húzza át a Riasztás megjelenítése műveletet az Oldalműveletek szakaszból.

  9. Az Üzenet mezőben jelölje ki a payloadData értéket, amely a trigger regisztrálásakor megadott adattörzs.

  10. Zárja be a Beállítások panelt, és a Site Builder szerkesztőben váltson előnézeti módra.

  11. 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.

  12. Térjen át szerkesztési módba, és nyissa meg az összetevőhöz tartozó Beállítások panelt.

  13. Kattintson az Egyéni beállítások gombra, és írja be a Workplace értéket.

  14. Zárja be a Beállítások panelt, és váltson előnézeti módra.

  15. 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.