Nastavenie akcií

Môžete nastaviť komponent využívajúci registráciu akcie a ten potom presunúť na stránku, na ktorej budú vykonávané akcie v rámci daného komponentu.

Registrácia akcií

Akcie s komponentmi sú volané, keď sú vyvolané spúšťače. Komponent môže mať registrovaný ľubovoľný počet akcií a takisto môže definovať payload, ktorý akcia podporuje. Keď používateľ vyberie akciu, môže vyplniť payload, ktorý sa odovzdá pre danú akciu.

Rovnako ako pri registrovaní spúšťačov, môžete v dátach registrácie v súbore appinfo.json pre motív zaregistrovať akcie, ktoré komponent podporuje.

Tu je príklad registrácie akcie:

  1. Upravte súbor appinfo.json pre daný komponent a aktualizujte položku "actions":[],.
    "actions": [{
      "actionName": "helloWorldChangeWhoIAm",
      "actionDescription": "Change Who I Am",
      "actionPayload": [{
        "name": "whoAreYou",
        "description": "Who are you?",
        "type": {
          "ojComponent": {
           "component": "ojInputText"}
          },
        },
        "value": ""
      }]
    }]
  2. Po registrácii bude akcia zobrazená v dialógovom okne akcií, ktoré vyvoláte kliknutím na spúšťač na karte Prepojenie na paneli Nastavenie pre daný komponent.

Vykonávanie akcií

Po registrácii akcie budete môcť presunúť komponenty na stránku, ktorá vykonáva akcie v rámci komponentu. Na to, aby mohol komponent spustiť akciu, musí prijať správu EXECUTE_ACTION. Táto správa obsahuje aj payload odovzdaný do akcie, z ktorého je potrebné extrahovať očakávané hodnoty.

Napríklad na prijatie správy EXECUTE_ACTION upravte súbor render.js a aktualizujte objekt ViewModel týmito položkami:
self.executeActionListener = function (args) {
  // get action and payload
  var payload = $.isArray(args.payload) ? args.payload[0] : {},
        action = args.action,
        actionName = action && action.actionName;

  // handle 'helloWorldChangeWhoIAm' actions
  if ((actionName === 'helloWorldChangeWhoIAm') && (payload.name === 'whoAreYou')) {
    self.whoAreYou(payload.value);
  }
};

Týmto sa vytvorí funkcia JavaScript na vykonanie akcie. Potom sa použije súprava Sites SDK na volanie funkcie pri každom vyvolaní správy EXECUTE_ACTION.

Akcia bude volaná pri každom vyvolaní správy EXECUTE_ACTION a záleží na komponente, či spracuje len akcie, na ktoré bol navrhnutý. Na to je potrebné skontrolovať názov akcie a uistiť sa, že je to tá akcia, ktorú môžete spracovať.

Payloadom akcie je pole hodnôt. V tomto príklade sa predpokladá, že hodnota je prvá položka v poli. Vy by ste v poli mali nájsť tie hodnoty payloadu, ktoré chcete spracovať.

Poznámka:

Keďže prijímač akcie prestavuje spätné volanie, mali by ste použiť JavaScript Closure alebo je potrebné vytvoriť vhodné viazanie funkcie, aby ste mali zabezpečený prístup k objektu ViewModel, keď je vykonaná funkcia.