Steg 8: Exekvera åtgärder

Efter det här avsnittet kan du släppa komponenter på sidan som exekverar åtgärder inom komponenten. Det här drar nytta av den åtgärdsregistrering som du skapade i föregående steg.

För att en komponent ska exekvera en åtgärd måste den lyssna efter meddelandet EXECUTE_ACTION. Det här meddelandet inkluderar även den nyttolast som överförs till åtgärden från vilken du ska extrahera de förväntade värdena.

Om du vill lyssna efter meddelandet EXECUTE_ACTION ska du redigera filen render.js och uppdatera objektet SampleComponentViewModel med följande post:

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

När meddelandet EXECUTE_ACTION tas emot exekveras den associerade återanropsfunktionen:

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

Det här skapar en JavaScript-funktion för exekvering av åtgärden, varefter SDK:t för webbplatser används för att anropa funktionen när meddelandet EXECUTE_ACTION visas.

Komponenten anropas när meddelandet EXECUTE_ACTION visas, och det är upp till komponenten att hantera endast de åtgärder som den har utformats för att hantera. För att göra detta måste du kontrollera åtgärdens namn för att säkerställa att komponenten kan hantera den.

Nyttolasten för åtgärden är en uppställning värden. Vanligtvis måste du hitta de nyttolastvärden du är intresserad av från uppställningen.

Obs!:

Eftersom åtgärdsavlyssnaren är ett återanrop ska du använda JavaScript Closure eller på lämpligt sätt binda funktionen för att säkerställa att du har åtkomst till viewModel när funktionen exekveras.

Kontrollera resultaten för steg 8

  1. Förnya sidan på webbplatsen så att webbplatsverktyget kan hämta ändringar av komponenten.

  2. Ta sidan till redigeringsläge.

  3. Dra och släpp komponenten på sidan.

  4. Dra och släpp en knappkomponent på sidan.

  5. Öppna panelen Inställningar mot knappkomponenten.

  6. På fliken Allmänt ändrar du etiketten för knappen till Klicka på mig!

  7. Välj fliken Länk överst i panelen Inställningar.

  8. Välj Triggeråtgärder som Länktyp.

  9. Klicka på triggern Klicka på en knapp mot knappkomponenten.

  10. I dialogrutan expanderar du komponenten A_Local_Component på vänster sida.

  11. Dra och släpp åtgärden Uppdatera bildbredden från komponenten A_Local_Component till den högra sidan.

  12. Ange 300 px i fältet Bredd på bild i bildpunkter.

  13. Växla till förhandsgranskningsläge för sidan.

  14. Klicka på knappen Klicka på mig!.

Då ökar storleken på bilden till 300px.

Obs!:

Triggrar och åtgärder är utformade för att stödja kommunikationen mellan komponenter. De är inte utformade för att skapa eller hantera tillstånd. Om du förnyar sidan återställs sidan till sitt ursprungliga tillstånd som om inga triggrar hade aktiverats eller åtgärder exekverats.

Fortsätt till Steg 9: Skapa en unik titel för varje instans av komponenten.