Krok 8: Vykonávanie akcií

Na konci tejto témy budete môcť presunúť komponenty na stránku, ktorá vykonáva akcie v rámci komponentu. Využíva sa pritom registrácia akcií vytvorená v predchádzajúcom kroku.

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 extrahujete očakávané hodnoty.

Ak chcete prijať správu EXECUTE_ACTION, upravte súbor render.js a aktualizujte objekt SampleComponentViewModel touto položkou:

SitesSDK.subscribe('EXECUTE_ACTION', $.proxy(self.executeActionsListener, self));

Po prijatí správy EXECUTE_ACTION sa spustí súvisiaca funkcia spätného volania:

    self.executeActionsListener = function (args) {
      // get action and payload
      var payload = args.payload,
      action = args.action;

      // handle 'setImageWidth' actions
      if (action && action.actionName === 'setImageWidth') {
        $.each(payload, function(index, data) {
          if (data.name === 'imageWidth') {
            self.imageWidth(data.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.

Komponent bude volaný vždy, keď sa vráti správa EXECUTE_ACTION, a záleží na komponente, či spracuje len akcie, pre ktoré bol navrhnutý. Na to je potrebné skontrolovať názov akcie, či ide o akciu, ktorú komponent dokáže spracovať.

Payloadom akcie je pole hodnôt. V tomto poli bude potrebné nájsť hodnoty payloadu, ktoré potrebujete.

Poznámka:

Keďže prijímač akcie predstavuje spätné volanie, mali by ste použiť JavaScript Closure alebo vytvoriť vhodné viazanie funkcie, aby ste mali zabezpečený prístup k objektu viewModel, keď sa táto funkcia spustí.

Kontrola výsledkov pre krok 8

  1. Obnovte stránku na svojej lokalite, aby generátor lokalít mohol vybrať zmeny komponentu.

  2. Otvorte stránku v režime úprav.

  3. Myšou presuňte komponent na stránku.

  4. Na stránku presuňte komponent Tlačidlo.

  5. Otvorte panel Nastavenia pre komponent Tlačidlo.

  6. Na karte Všeobecné zmeňte označenie tlačidla na Click me!

  7. Vyberte kartu Prepojenie v hornej časti panela Nastavenia.

  8. Ako typ prepojenia vyberte položku Akcie spúšťača.

  9. Kliknite na spúšťač Kliknutie na tlačidlo pre komponent Tlačidlo.

  10. V dialógovom okne rozbaľte komponent A_Local_Component na ľavej strane.

  11. Myšou presuňte akciu Update the image width z komponentu A_Local_Component na pravú stranu.

  12. Do poľa Image Width in pixels zadajte hodnotu 300px.

  13. Prepnite stránku do režimu ukážky.

  14. Kliknite na tlačidlo Click me!

V tomto bode sa obrázok zväčší na hodnotu 300px.

Poznámka:

Spúšťače a akcie sú navrhnuté tak, aby podporovali komunikáciu medzi komponentmi. Nie sú navrhnuté na vytváranie ani na spravovanie stavu. Ak obnovíte stránku, vráti sa do pôvodného stavu, ako keby neboli vyvolané žiadne spúšťače ani vykonané žiadne akcie.

Pokračujte na Krok 9: Vytvorenie samostatného názvu pre každú inštanciu v komponente.