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
Atualize sua página no site para que o Site Builder possa selecionar as alterações no componente.
Coloque a página no modo de Edição.
Arraste e solte o componente na página.
Arraste e solte um componente Botão na página.
Abra o painel Definições com o componente Botão.
Na guia Geral, altere o Label do botão para Clique em mim!
Selecione a guia Link na parte superior do painel Definições.
Selecione Ações do Trigger como Tipo de Link.
Clique no trigger Clicar no Botão para o componente Botão.
Na caixa de diálogo, expanda o componente A_Local_Component
no lado esquerdo.
Arraste e solte a ação Atualizar a largura da imagem do componente A_Local_Component
para o lado direito.
Digite 300px no campo Largura da Imagem em pixels.
Alterne a página para o modo de Visualização.
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.