Stap 8: Acties uitvoeren

Aan het einde van dit onderwerp kunt u componenten op de pagina neerzetten waarmee acties binnen de component worden uitgevoerd. Hierdoor wordt de actieregistratie benut die u bij de vorige stap hebt gemaakt.

Een component moet luisteren naar het bericht EXECUTE_ACTION om een actie uit te kunnen voeren. Dit bericht omvat ook de payload die wordt doorgegeven aan de actie, waaruit u de verwachte waarden moet extraheren.

Om te luisteren naar het bericht EXECUTE_ACTION bewerkt u het bestand render.js en werkt u het object SampleComponentViewModel bij met de volgende invoer:

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

Wanneer het bericht EXECUTE_ACTION is ontvangen, wordt de bijbehorende callbackfunctie uitgevoerd:

    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);
          }
        });
      }
    }

Hiermee wordt een JavaScript-functie gemaakt om de actie uit te voeren. Vervolgens wordt de Sites SDK gebruikt om de functie aan te roepen wanneer het bericht EXECUTE_ACTION wordt gegenereerd.

De component wordt aangeroepen wanneer een EXECUTE_ACTION-bericht wordt gegenereerd, en door de component worden alleen acties afgehandeld waarvoor de component is ontworpen. Hiervoor moet u de naam van de actie controleren om er zeker van te zijn dat deze met de component kan worden afgehandeld.

De payload voor de actie is een array van waarden. Doorgaans moet u de payloadwaarden die u wilt hebben in de array zoeken.

Opmerking:

Omdat de actielistener een callback is, moet u JavaScript Closure gebruiken of de functie op de juiste manier binden om ervoor te zorgen dat u toegang hebt tot uw viewModel wanneer de functie wordt uitgevoerd.

Controleer de resultaten voor stap 8.

  1. Vernieuw uw pagina op uw site, zodat wijzigingen in de component kunnen worden opgehaald met de sitebuilder.

  2. Open de pagina in de bewerkmodus.

  3. Sleep de component naar de pagina.

  4. Sleep een knopcomponent naar de pagina.

  5. Open het paneel 'Instellingen' voor de knopcomponent.

  6. Wijzig op het tabblad 'Algemeen' het label van de knop in Klik hierop!

  7. Selecteer het tabblad Koppelen boven aan het paneel 'Instellingen'.

  8. Selecteer Triggeracties als het koppelingstype.

  9. Klik op de trigger Klikken op knop voor de knopcomponent.

  10. Vouw in het dialoogvenster de component Een_lokale_component aan de linkerkant uit.

  11. Sleep de actie De afbeeldingsbreedte bijwerken van de component Een_lokale_component naar de rechterkant.

  12. Voer 300px in het veld Afbeeldingsbreedte in pixels in.

  13. Zet de pagina in de voorbeeldmodus.

  14. Klik op de knop Klik hierop!.

Uw afbeelding wordt nu vergroot naar 300px.

Opmerking:

Triggers en acties zijn ontworpen om de communicatie tussen componenten te ondersteunen. Ze zijn niet ontworpen voor het maken of beheren van statuswaarden. Als u de pagina vernieuwt, wordt de pagina in de oorspronkelijke status weergegeven alsof er geen triggers zijn opgetreden of acties zijn uitgevoerd.

Doorgaan naar Stap 9: Een afzonderlijke titel maken voor elke instance van de component.