Impostare le azioni

È possibile impostare un componente per sfruttare la registrazione delle azioni in modo che possa essere rilasciato su una pagina che eseguirà le azioni all'interno del componente.

Registrare le azioni

Le azioni vengono chiamate sui componenti quando vengono richiamati i trigger. Un componente è in grado di registrare un numero di azioni qualsiasi nonché di definire il payload supportato dall'azione. Quando seleziona un'azione, l'utente può popolare il payload da passare all'azione.

Come avviene per la registrazione dei trigger, è possibile registrare le azioni supportate dal componente nei dati di registrazione del file appinfo.json per il tema.

Di seguito viene fornito un esempio delle modalità di registrazione di un'azione.

  1. Modificare il file appinfo.json per il componente e aggiornare la voce "actions":[],.
    "actions": [{
      "actionName": "helloWorldChangeWhoIAm",
      "actionDescription": "Change Who I Am",
      "actionPayload": [{
        "name": "whoAreYou",
        "description": "Who are you?",
        "type": {
          "ojComponent": {
           "component": "ojInputText"}
          },
        },
        "value": ""
      }]
    }]
  2. Una volta registrata, l'azione sarà visibile nella finestra di dialogo specifica richiamata quando si fa clic su un trigger nella scheda Collegamento del pannello Impostazioni per il componente.

Eseguire le azioni

Dopo aver registrato un'azione, sarà possibile rilasciare sulla pagina i componenti che eseguono le azioni all'interno del componente. Affinché possa eseguire un'azione, un componente deve ascoltare il messaggio EXECUTE_ACTION. Questo messaggio include anche il payload passato all'azione da cui è necessario estrarre i valori previsti.

Ad esempio, per ascoltare il messaggio EXECUTE_ACTION, modificare il file render.js e aggiornare l'oggetto ViewModel con le immissioni seguenti:
self.executeActionListener = function (args) {
  // get action and payload
  var payload = $.isArray(args.payload) ? args.payload[0] : {},
        action = args.action,
        actionName = action && action.actionName;

  // handle 'helloWorldChangeWhoIAm' actions
  if ((actionName === 'helloWorldChangeWhoIAm') && (payload.name === 'whoAreYou')) {
    self.whoAreYou(payload.value);
  }
};

Questo frammento di codice crea una funzione JavaScript per eseguire l'azione, quindi utilizza il kit Sites SDK per chiamare la funzione a ogni riproduzione del messaggio EXECUTE_ACTION.

L'azione verrà chiamata a ogni riproduzione del messaggio EXECUTE_ACTION e dipende dal componente gestire solo le azioni per le quali è stato progettato. A tale scopo è necessario verificare il nome dell'azione per assicurarsi che si tratti di un'azione gestibile.

Il payload per l'azione è un array di valori. Nell'esempio si suppone che il valore sia la prima voce nell'array. In genere è necessario trovare i valori di payload a cui si è interessati dall'array.

Nota:

poiché il listener dell'azione è un callback, utilizzare JavaScript Closure oppure associare in modo appropriato la funzione per garantire l'accesso a ViewModel quando la funzione viene eseguita.