Etap 8: Wykonywanie czynności

Pod koniec tego etapu będziemy potrafili przeciągać na stronę składniki wykonujące czynności w danym składniku. Wykorzystywana jest przy tym rejestracja czynności utworzona w poprzednim etapie.

Składnik, aby móc wykonać czynność, musi nasłuchiwać komunikatu EXECUTE_ACTION. W komunikacie tym jest także zawarty ładunek przekazany do czynności, z którego trzeba wyodrębnić oczekiwane wartości.

Aby był prowadzony nasłuch komunikatu EXECUTE_ACTION, należy otworzyć plik render.js do edycji i zaktualizować w nim obiekt SampleComponentViewModel, używając następującego kodu:

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

Po otrzymaniu komunikatu EXECUTE_ACTION zostanie wykonana powiązana funkcja wywołania zwrotnego:

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

Kod ten tworzy funkcję JavaScript wykonywania czynności, a następnie używa biblioteki Sites SDK do wywołania tej funkcji, gdy tylko zostanie zgłoszony komunikat EXECUTE_ACTION.

Składnik ten będzie wywoływany przy każdym zgłoszeniu komunikatu EXECUTE_ACTION, a o tym, czy czynność ta zostanie wykonana, decyduje sam składnik. Dlatego, aby mieć pewność, że jest to składnik obsługiwany, trzeba sprawdzić jego nazwę.

Ładunek dla czynności ma postać tablicy wartości. Zazwyczaj trzeba będzie odnaleźć w tablicy odpowiednie wartości ładunku.

Uwaga:

Ponieważ nasłuch funkcji działa w trybie wywołania zwrotnego, należy — aby mieć pewność, że w chwili uruchomienia funkcji jest możliwy dostęp do obiektu viewModel — użyć domknięcia (closure) JavaScript albo odpowiednio powiązać funkcję.

Sprawdzanie wyników dla etapu 8

  1. Aby konstruktor serwisów mógł pobrać zmiany do składnika, odświeżyć stronę serwisu.

  2. Przełączyć stronę do trybu edycji.

  3. Przeciągnąć składnik na stronę.

  4. Przeciągnąć składnik "przycisk" na stronę.

  5. Wyświetlić panel "Ustawienia" składnika "przycisk".

  6. Na karcie "Ogólne" zmienić etykietę przycisku na Click me!

  7. Wybrać kartę Łącze znajdującą się na górze panelu "Ustawienia".

  8. Jako typ łącza wybrać opcję Czynności wyzwalacza.

  9. Dla składnika "przycisk" wybrać wyzwalacz Naciśnięcie przycisku.

  10. W oknie dialogowym rozwinąć składnik A_Local_Component (po lewej stronie).

  11. Przeciągnąć czynność Aktualizacja szerokości obrazu ze składnika A_Local_Component do obszaru prawego panelu.

  12. W polu Szerokość obrazu w pikselach wprowadzić wartość 300px.

  13. Przełączyć stronę do trybu podglądu.

  14. Nacisnąć przycisk Click me!

W tym miejscu rozmiar obrazu zostanie zwiększony do 300px.

Uwaga:

Wyzwalacze i czynności są projektowane z myślą o obsłudze komunikacji między składnikami. Nie są projektowane tak, aby można było za ich pomocą tworzyć stany lub nimi zarządzać. Po odświeżeniu strony powróci ona do swojego pierwotnego stanu, ponieważ nie są uruchamiane żadne wyzwalacze ani nie są wykonywane żadne czynności.

Kontynuacja: Etap 9: Tworzenie osobnego tytułu dla każdego wystąpienia składnika.