Krok 6: Vyvolávání triggerů

V tomto kroku vám vysvětlíme, jak je vyvoláván trigger, jehož registraci jsme si ukázali.

Triggery mohou být komponentou vyvolány kdykoli. Zpravidla je vyvolán interakcí uživatele, jako je kliknutí na tlačítko nebo výběr řádky v tabulce. Nicméně komponenta může vyvolat trigger na základě libovolného kritéria, například když se změní data v důsledku volání REST.

Když v této ukázce kliknete na obrázek, vyvoláte trigger, který projde aktuální hodnotu vlastnosti whoAreYou.

Zkontrolujte soubor render.js a podívejte se na objekt SampleComponentViewModel.

Chcete-li vyvolat trigger:

  1. Zkontrolujte funkci v objektu SampleComponentViewModel, která volá sadu SDK pro weby s cílem vyvolat trigger.

    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': triggerName, 
        'triggerPayload': { 
            'payloadData': 'some data here'
        }
      });
    };
  2. Nyní potřebujete něco v uživatelském rozhraní, abyste mohli volat funkci, která vyvolá trigger. Zkontrolujte soubor render.js a aktualizujte objekt sampleComponentTemplate, aby obsahoval tuto položku:

         '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +

V objektu SampleComponentViewModel uvidíte javascriptovou funkci, která je volána po kliknutí na obrázek. Tato funkce zavolá sadu SDK pro weby, aby jí předala pokyn ke spuštění všech akcí definovaných pro trigger "imageClicked", což je hodnota předaná z vazby click v kroku 2. Projde také objekt triggerPayload, který obsahuje jediné pole payloadData, a statickou hodnotu 'some data here'. Tyto hodnoty imageClickedwhoAreYou se shodují s hodnotami v souboru appinfo.json, ve kterém je trigger registrován (v předchozím kroku).

V ukázkovém kódu je trigger vyvolán datovou vazbou vazby click a předává název triggeru imageClicked. Momentálně jsou k dispozici tři způsoby generování komponenty <scs-image> na základě rozvržení zvoleného uživatelem. Chcete-li zajistit vyvolání triggeru pro každé z těchto rozvržení, upravte soubor render.js provedením následujících změn.

  • Vyvolejte triggery z různých rozvržení. Najděte dvě položky tohoto kódu:

    '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}">' +

    Změňte stávající kód na tento kód:

    '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
  • Zadejte datovou část pro předání triggerům. Změňte tento kód:

        self.raiseTrigger = function (triggerName) {
          SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
            'triggerName': triggerName,
            'triggerPayload': {
              'payloadData': 'some data here'
            }
          });
        };

    Místo něj použijte tento kód:

        self.raiseTrigger = function (triggerName) {
          SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
            'triggerName': triggerName,
            'triggerPayload': {
              'payloadData': self.imageBannerText() // pass banner text as payload
            }
          });
        };
  • Synchronizujte nebo odešlete soubor render.js na server instance služby Oracle Content Management.

Nyní, když jste zkontrolovali požadovaný kód, můžete připojit trigger tak, aby ho vaše vlastní komponenta vyvolala při kliknutí na tlačítko.

Kontrola výsledků pro krok 6

Nyní byste měli být schopni registrovat akci, která se spustí pro trigger, a také mít možnost nechat akci provést, když je trigger vyvolán:

  1. Aktualizujte svou stránku na webu, aby nástroj Site Builder mohl provést změny komponenty.

  2. Uveďte stránku do režimu úprav.

  3. Přetáhněte svou komponentu na stránku.

  4. Vyvolejte panel Nastavení pro svou komponentu.

  5. Vyberte kartu Propojení u horního okraje panelu Nastavení.

  6. Pro položku Typ propojení vyberte volbu Akce triggeru.

  7. Klikněte na trigger imageClicked, jehož registraci jsme si ukázali.

  8. V dialogovém okně přetáhněte akci Zobrazit výstrahu ze sekce Akce stránky.

  9. V poli Zpráva vyberte hodnotu payloadData, což je datová část, kterou jste zadali při registraci triggeru.

  10. Zavřete panel Nastavení a přepněte nástroj Site Builder do režimu náhledu.

  11. Klikněte na obrázek v komponentě.

    Zobrazí se výstraha obsahující text no message defined, protože jste nezadali hodnotu imageBannerText.

  12. Uveďte stránku do režimu úprav a znovu vyvolejte panel Nastavení pro komponentu.

  13. Klikněte na volbu Vlastní nastavení a zadejte text Pracovní prostor.

  14. Zavřete panel Nastavení a přepněte stránku do režimu náhledu.

  15. Klikněte na obrázek v komponentě.

    Nyní by se měla zobrazit aktualizovaná datová část Pracovní prostor, což je způsobeno změnou, kterou jste provedli pro vazbu click.

Při vyvolání triggeru můžete spustit libovolný počet akcí.

Poznámka:

Při provádění akce neexistuje žádné předem definované pořadí. Přestože jednotlivé akce budou volány v pořadí, v jakém jsou uvedeny, funkce nečeká před voláním další akce na dokončení té předchozí. Pokud akce uskuteční asynchronní volání, nemusí být dokončena před spuštěním další akce.

Pokračujte částí Krok 7: Registrace akcí.