In questo passo viene descritto come richiamare il trigger registrato.
I trigger possono essere richiamati in un punto qualsiasi da un componente. In genere un trigger viene richiamato da un'interazione utente, quale ad esempio il clic su un pulsante o la selezione di una riga in una tabella. Il componente può tuttavia richiamare il trigger in base a un criterio qualsiasi, ad esempio quando i dati vengono modificati a causa di una chiamata REST.
In questo esempio, quando si fa clic sull'immagine viene richiamato un trigger mediante il passaggio del valore corrente della proprietà whoAreYou
.
Esaminare il file render.js
e osservare l'oggetto SampleComponentViewModel
.
Per richiamare un trigger, effettuare le operazioni riportate di seguito.
Rivedere la funzione dell'oggetto SampleComponentViewModel
che chiama il kit Sites SDK per richiamare il trigger.
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': triggerName, 'triggerPayload': { 'payloadData': 'some data here' } }); };
Ora è necessario qualcosa nell'interfaccia utente per chiamare la funzione per attivare il trigger. Rivedere il file render.js
e aggiornare l'oggetto sampleComponentTemplate
per inserirvi la voce seguente:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
Nell'oggetto SampleComponentViewModel
è visibile la funzione JavaScript richiamata quando si fa clic sull'immagine. Questa funzione chiama il kit Sites SDK per indicare di attivare tutte le azioni definite per il trigger "imageClicked"
, ovvero il valore passato dall'associazione click
nel Passo 2. Inoltre, passa un valore triggerPayload
, con il solo campo payloadData
, e il valore statico 'some data here'
. Questi valori imageClicked
e whoAreYou
corrispondono a quelli del file appinfo.json
in cui è stato registrato il trigger (nel passo precedente).
Nel codice di esempio il trigger viene richiamato da una data-bind dell'associazione click
e passa il nome trigger imageClicked
. Esistono tre rendering del componente <scs-image>
basati sul layout scelto dall'utente. Per assicurarsi che il trigger venga richiamato per ognuno dei layout, aggiornare il file render.js
per apportare le modifiche indicate di seguito.
Richiamare i trigger da layout diversi. Trovare le due immissioni di questo codice:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}">' +
Modificare il codice in questo modo:
'<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' +
Specificare il payload da passare ai trigger. Modificare questo codice:
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': triggerName, 'triggerPayload': { 'payloadData': 'some data here' } }); };
Usare questo codice in sostituzione del precedente:
self.raiseTrigger = function (triggerName) { SitesSDK.publish(SitesSDK.MESSAGE_TYPES.TRIGGER_ACTIONS, { 'triggerName': triggerName, 'triggerPayload': { 'payloadData': self.imageBannerText() // pass banner text as payload } }); };
Sincronizzare o caricare il file render.js
nel server dell'istanza di Oracle Content Management.
Dopo aver esaminato il codice necessario, è possibile collegare il trigger in modo che il componente personalizzato lo richiami quando si fa clic sul pulsante.
Controllare i risultati per il passo 6
Ora si è in grado di registrare l'azione da eseguire sul trigger e di ottenere l'esecuzione dell'azione quando viene richiamato il trigger:
Aggiornare la pagina nel sito in modo che SiteBuilder possa selezionare le modifiche apportate al componente.
Attivare la modalità Modifica per la pagina.
Trascinare e rilasciare il componente sulla pagina.
Visualizzare il pannello Impostazioni per il componente.
Selezionare la scheda Collegamento nella parte superiore del pannello Impostazioni.
Selezionare Azioni trigger come tipo di collegamento.
Fare clic sul trigger imageClicked registrato.
Nella finestra di dialogo trascinare l'azione Mostra avvisi dalla sezione Azioni pagina.
Nel campo Messaggio selezionare il valore payloadData, che indica il payload immesso alla registrazione del trigger.
Chiudere il pannello Impostazioni e attivare la modalità Anteprima di SiteBuilder.
Fare clic sull'immagine nel componente.
Verrà visualizzato l'avviso nessun messaggio definito
perché non è stato specificato il valore imageBannerText
.
Attivare la modalità Modifica per la pagina e visualizzare di nuovo il pannello Impostazioni per il componente.
Fare clic su Impostazioni personalizzate e immettere Workplace.
Chiudere il pannello Impostazioni e attivare la modalità Anteprima per la pagina.
Fare clic sull'immagine nel componente.
Dovrebbe essere visualizzato il payload Workplace
aggiornato, richiamato dalla modifica apportata all'associazione click
.
È possibile eseguire un numero illimitato di azioni quando il trigger viene richiamato.
Nota:
Non esiste un ordine predefinito per l'esecuzione delle azioni. Sebbene ogni azione venga chiamata in base all'ordine della lista, non ne viene atteso il completamento prima che l'azione successiva venga richiamata. Se effettua una chiamata asincrona, un'azione potrebbe non essere completata prima dell'esecuzione dell'azione successiva.Continuare con l'argomento Passo 7: Registrare le azioni.