Nastavení triggerů

Komponenta může zahrnovat triggery, které budou spouštět akce v jiných komponentách. Triggery je nutné registrovat, aby je mohly komponenty vyvolávat.

Komponenta poskytuje datovou část pro trigger, která je předána libovolné akci spuštěné při vyvolání triggeru. Můžete vybrat, jaké akce budou provedeny pro jednotlivé triggery. Komponenty, které jsou vytvořeny tak, aby spolupracovaly, mohou automaticky vyvolávat triggery pro spouštění akcí bez interakce uživatele.

Registrace triggerů

U vlastní komponenty jsou triggery registrovány jako součást registračních dat pro komponentu. Pokud chcete přidat trigger, aktualizujte pole vlastnosti "triggers" každým triggerem, který komponenta podporuje. Musíte také určit datovou část, kterou trigger podporuje, aby bylo možné vytvořit uživatelské rozhraní, které umožní uživatelům mapovat hodnoty v datové části na vlastnosti podporované akcí.

  1. Upravte soubor appinfo.json a zkontrolujte položku "triggers":[],:
    "triggers": [{
        "triggerName": "helloWorldWhoAreYou",
        "triggerDescription": "Show Who I Am",
        "triggerPayload": [{
          "name": "whoAreYou",
          "displayName": "Who I Am"
       }]
    }],
  2. Synchronizujte soubor se serverem webů.

V této ukázkové položce triggeru jste definovali vlastnost triggerName ("helloWorldWhoAreYou"). Hodnota názvu musí být jedinečná. Poté jste triggeru přiřadili popis ("Show Who I Am"), který je používán dialogovým oknem uživatelského rozhraní pro zobrazení triggeru. A konečně jste definovali datovou část s jedinou hodnotou pro trigger, takže uživatelé budou moci vybrat položky v této datové části a mapovat je na pole v akci.

Jakmile je trigger registrován, měl by se zobrazit a měl by být možné jej vybrat, když přejdete na kartu Propojení na panelu Nastavení pro komponentu.

Vyvolávání triggerů

Triggery mohou být komponentou vyvolány kdykoli. Zpravidla je trigger vyvolán interakcí uživatele, například kliknutím na tlačítko nebo výběrem řádku v tabulce. Komponenta může vyvolat trigger na základě libovolného kritéria, například když se změní data v důsledku volání rozhraní REST API. Při vyvolání triggeru můžete spustit libovolný počet akcí.

Zde je uveden příklad, jak vyvolat trigger:
  1. Upravte soubor render.js a přidejte funkci v jazyku JavaScript do objektu viewModel, která zavolá sadu SDK pro weby, a tím vyvolá trigger.
    self.raiseTrigger = function (triggerName) {
      SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
        'triggerName': 'helloWorldWhoAreYou', 
        'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
      });
    };
  2. Přidejte položku do uživatelského rozhraní, která zavolá funkci pro vyvolání triggeru (-edit template.html), a tlačítko před prvek </div>.
    <button data-bind="click raiseTrigger">Who Am I?</button>
  3. Synchronizujte nebo odešlete soubor render.js na server instance služby Oracle Content Management.

V objektu ViewModel jste vytvořili funkci v jazyku JavaScript, která je volána při kliknutí na tlačítko. Tato funkce zavolá sadu SDK pro weby, aby jí předala pokyn ke spuštění všech akcí definovaných pro tento trigger "helloWorldWhoAreYou". Projde také objekt triggerPayload, který obsahuje jediné pole, a to "whoAreYou". Tyto hodnoty "helloWorldWhoAreYou""whoAreYou" odpovídají hodnotám, které jste zadali při registraci triggeru v předchozím kroku.

Poznámka:

Neexistuje žádný předem definovaný pokyn, kdy bude akce spuštěna. 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.