Etapa 8: Executar Ações

No final deste tópico, você poderá soltar na página os componentes que executem ações internas. Isso utiliza o registro de ação que você criou na etapa anterior.

Para que um componente execute uma ação, ele deve fazer listening da mensagem EXECUTE_ACTION. Essa mensagem também inclui o payload transmitido à ação da qual você extrairá os valores esperados.

Para fazer listening da mensagem EXECUTE_ACTION, edite o arquivo render.js e atualize o objeto SampleComponentViewModel com a seguinte entrada:

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

Quando a mensagem EXECUTE_ACTION é recebida, a função de callback associada é executada:

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

Isso cria uma função JavaScript para executar a ação e depois usa o Sites SDK para chamar a função sempre que a mensagem EXECUTE_ACTION é emitida.

O componente será chamado sempre que uma mensagem EXECUTE_ACTION for emitida e caberá ao componente tratar apenas as ações designadas a ele. Para fazer isso, verifique o nome da ação para ter certeza de ser uma que o componente pode tratar.

O payload da ação é um array de valores. Normalmente, você precisará encontrar no array os valores de payload do seu interesse.

Nota:

Como o listener de ação é um callback, use o JavaScript Closure ou faça binding apropriadamente da função para garantir que você tenha acesso ao seu viewModel quando a função for executada.

Verificar os Resultados da Etapa 8

  1. Atualize sua página no site para que o Site Builder possa selecionar as alterações no componente.

  2. Coloque a página no modo de Edição.

  3. Arraste e solte o componente na página.

  4. Arraste e solte um componente Botão na página.

  5. Abra o painel Definições com o componente Botão.

  6. Na guia Geral, altere o Label do botão para Clique em mim!

  7. Selecione a guia Link na parte superior do painel Definições.

  8. Selecione Ações do Trigger como Tipo de Link.

  9. Clique no trigger Clicar no Botão para o componente Botão.

  10. Na caixa de diálogo, expanda o componente A_Local_Component no lado esquerdo.

  11. Arraste e solte a ação Atualizar a largura da imagem do componente A_Local_Component para o lado direito.

  12. Digite 300px no campo Largura da Imagem em pixels.

  13. Alterne a página para o modo de Visualização.

  14. Clique no botão Clique em mim!.

Neste ponto, o tamanho da imagem aumentará para 300px.

Nota:

Os triggers e as ações são projetados para suportar a comunicação entre componentes. Eles não são projetados para criar ou gerenciar estado. Se você atualizar a página, ela será revertida para seu estado original se nenhum trigger tiver sido emitido ou nenhuma ação tiver sido executada.

Continue em Etapa 9: Criar um Título Distinto para cada Instância do Componente.