Trin 8: Udføre handlinger

Når du er færdig med dette emne, kan du slippe komponenter på den side, der udfører handlinger i komponenten. Her bruges den handlingsregistrering, som du oprettede i forrige trin.

For at en komponent kan udføre en handling, skal den lytte efter meddelelsen EXECUTE_ACTION. Denne meddelelse omfatter også det payload, der videregives til handlingen, og hvorfra du skal udtrække de forventede værdier.

Hvis der skal lyttes efter meddelelsen EXECUTE_ACTION, skal du redigere filen render.js og opdatere objektet SampleComponentViewModel med følgende post:

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

Når meddelelsen EXECUTE_ACTION modtages, udføres den tilknyttede callback-funktion:

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

Dette opretter en JavaScript-funktion til udførelse af handlingen og bruger derefter Sites-SDK'et til at kalde funktionen, hver gang meddelelsen EXECUTE_ACTION udløses.

Komponenten kaldes, hver gang der udløses en EXECUTE_ACTION-meddelelse, og det er op til komponenten kun at håndtere handlinger, som den er designet til at håndtere. For at gøre dette skal du kontrollere handlingens navn for at sikre, at det er en, som komponenten kan håndtere.

Payloadet for handlingen er et array af værdier. Du skal normalt finde de ønskede payload-værdier i arrayet.

Bemærk:

Da handlings-listeneren er et callback, skal du bruge JavaScript Closure eller tilknytte funktionen for at sikre, at du har adgang til din viewModel, når funktionen udføres.

Kontroller resultaterne for trin 8

  1. Opfrisk din side på sitet, så Site Builder kan hente ændringer af komponenten.

  2. Skift til redigeringstilstand for siden.

  3. Træk komponenten til siden, og slip den.

  4. Træk en knapkomponent til siden, og slip den.

  5. Åbn panelet Indstillinger for knapkomponenten.

  6. Ændr etiketten for knappen til Klik på mig! på fanen Generelt.

  7. Vælg fanen Link øverst i panelet Indstillinger.

  8. Vælg Triggerhandlinger som linktype.

  9. Klik på triggeren Klik på knap for knapkomponenten.

  10. Udvid komponenten A_Local_Component til venstre i dialogboksen.

  11. Træk handlingen Opdater billedbredden fra komponenten A_Local_Component over til højre.

  12. Skriv 300px i feltet Billedbredde i pixel.

  13. Skift til eksempeltilstand for siden.

  14. Klik på knappen Klik på mig!.

Nu ændres størrelsen på dit billede til 300px.

Bemærk:

Triggere og handlinger er designet til at understøtte kommunikation mellem komponenter. De er ikke designet til at oprette eller håndtere tilstande. Hvis du opfrisker siden, vender den tilbage til den oprindelige tilstand, som om ingen triggere var udløst og ingen handlinger udført.

Fortsæt til Trin 9: Oprette en distinkt titel til hver instans af komponenten.