Nesta etapa, mostraremos a você como o trigger que você viu registrado é acionado.
É possível acionar triggers em qualquer ponto por um componente. Em geral, ele é acionado por uma interação do usuário, como o clique em um botão ou a seleção de uma linha em uma tabela. No entanto, o componente pode acionar o trigger com base em qualquer critério; por exemplo, quando dados são alterados por causa de uma chamada REST.
Neste exemplo, quando você clicar na imagem, ela acionará um trigger transmitindo o valor atual da propriedade whoAreYou.
Verifique o arquivo render.js e examine o objeto SampleComponentViewModel.
Para acionar um trigger:
Verifique a função no objeto SampleComponentViewModel que chama o SDK de Sites para acionar o trigger.
self.raiseTrigger = function (triggerName) {
SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
'triggerName': triggerName,
'triggerPayload': {
'payloadData': 'some data here'
}
});
};Agora você precisa que algo na interface do usuário chame a função para acionar o trigger. Verifique o arquivo render.js e atualize o objeto sampleComponentTemplate para ter esta entrada:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +No objeto SampleComponentViewModel, você vê a função JavaScript que é chamada ao clicar na imagem. Essa função chama o SDK de Sites para dizer a ele que dispare todas as ações definidas para o trigger "imageClicked", que é o valor transmitido do binding click na etapa 2. Ele também transmite um triggerPayload que tem um único campo, payloadData, e transmite um valor estático 'some data here'. Os valores imageClicked e whoAreYou correspondem aos do arquivo appinfo.json no qual o trigger foi registrado (na etapa anterior).
No código de amostra, o trigger é acionado por um bind de dados do binding click e informa o nome do trigger imageClicked. Existem no momento três renderizações do componente <scs-image> com base no layout que o usuário escolhe. Para assegurar que o trigger seja emitido para cada layout, edite o arquivo render.js para fazer as alterações a seguir.
Acione os triggers de diferentes layouts. Encontre as duas entradas deste código:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}">' +
Altere o código para este:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +Especifique o payload a ser informado aos triggers. Altere este código:
self.raiseTrigger = function (triggerName) {
SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
'triggerName': triggerName,
'triggerPayload': {
'payloadData': 'some data here'
}
});
};
Em seu lugar, use este código:
self.raiseTrigger = function (triggerName) {
SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
'triggerName': triggerName,
'triggerPayload': {
'payloadData': self.imageBannerText() // pass banner text as payload
}
});
};Sincronize ou faça upload do arquivo render.js para o servidor de instância do Oracle Content Management.
Agora que você revisou o código necessário, poderá ligar o trigger para que seu componente personalizado o acione quando alguém clicar no botão.
Verificar os Resultados da Etapa 6
Agora você deverá conseguir registrar uma ação a ser executada sobre o trigger e quando ele for acionado:
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.
Abra o painel Definições no seu componente.
Selecione a guia Link na parte superior do painel Definições.
Selecione Ações do Trigger como Tipo de Link.
Clique no trigger imageClicked que você viu registrado.
Na caixa de diálogo, arraste a ação Mostrar Alerta na seção Ações da Página.
No campo Mensagem, selecione o valor payloadData, que é o payload que você informou quando registrou o trigger.
Feche o painel Definições e alterne o Site Builder para o modo de Visualização.
Clique na imagem do componente.
Um alerta será exibido mostrando no message defined porque você não especificou o valor imageBannerText.
Coloque a página no modo de Edição e abra novamente o painel Definições para o componente.
Clique em Definições Personalizadas e digite Workplace.
Feche o painel Definições e alterne a página para o modo de Visualização.
Clique na imagem do componente.
Agora ela deverá mostrar o payload atualizado Workplace, que é chamado com base na alteração feita no binding click.
Você pode executar qualquer número de ações quando um trigger é acionado.
Nota:
Não há ordem predefinida para quando uma ação é executada. Embora cada ação seja chamada na ordem em que é listada, não há espera de conclusão antes que a próxima ação seja chamada. Se uma ação fizer uma chamada assíncrona, poderá não ser concluída antes da execução da próxima ação.Continue em Etapa 7: Registrar Ações.