Schritt 8: Aktionen ausführen

Am Ende dieses Themas können Sie auf der Seite Komponenten ablegen, die Aktionen in der Komponente ausführen. Dazu wird die Aktionsregistrierung genutzt, die Sie im vorherigen Schritt erstellt haben.

Damit eine Komponente eine Aktion ausführt, muss sie auf die Nachricht EXECUTE_ACTION horchen. Diese Nachricht enthält auch die an die Aktion übergebene Payload, aus der Sie die erwarteten Werte extrahieren.

Um auf die Nachricht EXECUTE_ACTION zu horchen, bearbeiten Sie die Datei render.js, und aktualisieren Sie das Objekt SampleComponentViewModel mit dem folgenden Eintrag:

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

Wenn die Nachricht EXECUTE_ACTION eingeht, wird die zugehörige Callback-Funktion ausgeführt:

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

Dadurch wird eine JavaScript-Funktion zum Ausführen der Aktion erstellt. Diese wird dann über das Sites-SDK aufgerufen, wenn die Nachricht EXECUTE_ACTION ausgelöst wird.

Die Komponente wird jedes Mal aufgerufen, wenn die Nachricht EXECUTE_ACTION ausgelöst wird. Die Komponente muss dabei so eingerichtet werden, dass sie nur die beabsichtigten Aktionen verarbeitet. Prüfen Sie dazu den Namen der Aktion, um sicherzustellen, dass die Komponente sie verarbeiten kann.

Die Payload für die Aktion ist ein Array aus Werten. In der Regel müssen Sie die für Sie wichtigen Payload-Werte im Array finden.

Hinweis:

Da der Aktions-Listener ein Callback ist, müssen Sie JavaScript Closure verwenden oder die Funktion angemessen binden, um sicherzustellen, dass Sie Zugriff auf das ViewModel haben, wenn die Funktion ausgeführt wird.

Ergebnisse für Schritt 8 prüfen

  1. Aktualisieren Sie die Seite in der Site, damit Sitebuilder Änderungen an der Komponente abrufen kann.

  2. Öffnen Sie die Seite im Bearbeitungsmodus.

  3. Ziehen Sie die Komponente per Drag-and-Drop auf die Seite.

  4. Ziehen Sie eine Schaltflächenkomponente per Drag-and-Drop auf die Seite.

  5. Öffnen Sie den Einstellungsbereich für die Schaltflächenkomponente.

  6. Ändern Sie auf der Registerkarte "Allgemein" das Label der Schaltfläche in Hier klicken.

  7. Wählen Sie oben im Einstellungsbereich die Registerkarte Link aus.

  8. Wählen Sie Triggeraktionen als Linktyp aus.

  9. Klicken Sie auf den Trigger Klicken Sie auf die Schaltfläche für die Schaltflächenkomponente.

  10. Blenden Sie im Dialogfeld die Komponente A_Local_Component auf der linken Seite ein.

  11. Ziehen Sie die Aktion Bildbreite aktualisieren per Drag-and-Drop von der Komponente A_Local_Component auf die rechte Seite.

  12. Geben Sie 300px in das Feld Bildbreite in Pixel ein.

  13. Wechseln Sie zum Vorschaumodus der Seite.

  14. Klicken Sie auf die Schaltfläche Hier klicken.

Jetzt wird das Bild auf 300px vergrößert.

Hinweis:

Trigger und Aktionen sollen die Kommunikation unter Komponenten unterstützen. Sie dienen nicht dazu, den Status zu erstellen oder zu verwalten. Wenn Sie die Seite aktualisieren, kehrt sie in ihren ursprünglichen Zustand zurück, als ob keine Trigger ausgelöst oder Aktionen ausgeführt wurden.

Weiter mit Schritt 9: Eindeutigen Titel für jede Instanz der Komponente erstellen.