Um componente pode incluir triggers que executarão ações em outros componentes. Registre os triggers a serem acionados pelos componentes.
O componente fornece um payload para um trigger, que é transmitido a qualquer ação executada quando o trigger é acionado. Você pode selecionar quais ações serão executadas para cada trigger. Os componentes criados para funcionamento conjunto podem acionar triggers automaticamente para executar ações sem a interação do usuário.
Registrar Triggers
Para um componente personalizado, os triggers são registrados como parte dos dados de registro do componente. Para adicionar um trigger, atualize o array de propriedade "triggers" com cada trigger que o componente suporta. Especifique também o payload que o trigger suporta para que a interface do usuário possa ser criada para permitir que os usuários mapeiem os valores dentro do payload para as propriedades suportadas pela ação.
appinfo.json e verifique a entrada "triggers":[],:
"triggers": [{
"triggerName": "helloWorldWhoAreYou",
"triggerDescription": "Show Who I Am",
"triggerPayload": [{
"name": "whoAreYou",
"displayName": "Who I Am"
}]
}],Sincronize o arquivo com o servidor de sites.
Nesta entrada de trigger de amostra, você definiu um triggerName ("helloWorldWhoAreYou"). O valor do nome deve ser exclusivo. Você deu ao trigger uma descrição ("Show Who I Am"), que é usada pela caixa de diálogo da interface do usuário para exibir o trigger. Por último, você definiu um payload de valor único para o trigger; os usuários poderão selecionar entradas nesse payload e mapeá-las para campos na ação.
Depois que um trigger for registrado, você deverá vê-lo e selecioná-lo quando acessar a guia Link no painel Definições do seu componente.
Acionar Triggers
É possível acionar triggers em qualquer ponto por um componente. Em geral, um trigger é 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. Um componente pode acionar o trigger com base em qualquer critério, por exemplo, quando dados são alterador por causa de uma chamada de API REST. Você pode executar qualquer número de ações quando um trigger é acionado.
render.js e adicione uma função JavaScript no objeto viewModel que chamará o Sites SDK para acionar o trigger.
self.raiseTrigger = function (triggerName) {
SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, {
'triggerName': 'helloWorldWhoAreYou',
'triggerPayload': { "whoAreYou": "This is " + self.whoAreYou() + "!"}
});
};-edit template.html) e um botão antes de </div>.
<button data-bind="click raiseTrigger">Who Am I?</button>
Sincronize ou faça upload do arquivo render.js para o servidor de instância do Oracle Content Management.
No objeto ViewModel, você criou uma função JavaScript que é chamada quando alguém clica no botão. Essa função chama o Sites SDK para instruí-lo a acionar todas as ações definidas para este trigger "helloWorldWhoAreYou". Ela também passa por um triggerPayload que tem um único campo, "whoAreYou". Esses valores "helloWorldWhoAreYou" e "whoAreYou" correspondem aos que você digitou quando registrou o trigger na etapa anterior.
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.