Paso 8: Ejecutar acciones

Una vez registrada una acción, podrá soltar componentes en la página que ejecuten acciones dentro del componente. Se aprovecha el registro de acción que creó en el paso anterior.

Para que un componente ejecute una acción, debe recibir el mensaje EXECUTE_ACTION. Este mensaje también incluye la carga útil transferida a la acción desde la que extraerá los valores esperados.

Para recibir el mensaje EXECUTE_ACTION, edite el archivo render.js y actualice el objeto SampleComponentViewModel con la siguiente entrada:

SitesSDK.subscribe('EXECUTE_ACTION', $.proxy(self.executeActionsListener, self));

Cuando reciba el mensaje EXECUTE_ACTION, se ejecuta la función de devolución de llamada asociada:

    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);
          }
        });
      }
    }

Esto crea una función JavaScript para ejecutar la acción y, a continuación, utiliza el SDK de Sites para llamar a la función siempre que se emite el mensaje EXECUTE_ACTION.

Se llamará a este componente siempre que se emita un mensaje EXECUTE_ACTION, y dependerá del componente gestionar solo las acciones para las que está diseñado. Para ello, debe comprobar el nombre de la acción y asegurarse de que sea una acción que puede gestionar el componente.

La carga útil de la acción es una matriz de valores. Normalmente, necesitará buscar los valores de carga útil que le interesan en la matriz.

Nota:

Debido a que el listener de acción es una devolución de llamada, debe utilizar JavaScript Closure o enlazar la función de forma adecuada para asegurarse de tener acceso al viewModel cuando se ejecute la acción.

Compruebe los resultados del paso 8

  1. Refresque la página del sitio para que el creador de sitios pueda seleccionar los cambios del componente.

  2. Cambie la página al modo de edición.

  3. Arrastre y suelte el componente en la página.

  4. Arrastre y suelte un componente de botón en la página.

  5. Abra el panel de configuración en el componente de botón.

  6. En el separador General, cambie la etiqueta del botón a Haga clic aquí.

  7. Seleccione el separador Enlace en la parte superior del panel de configuración.

  8. Seleccione Acciones del disparador en Tipo de enlace.

  9. Haga clic en el disparador Hacer clic en botón del componente de botón.

  10. En el cuadro de diálogo, abra el componente A_Local_Component en la parte izquierda.

  11. Arrastre y suelte la acción Actualizar altura de imagen del componente A_Local_Component a la parte derecha.

  12. Introduzca 300px en el campo Ancho de imagen en píxeles.

  13. Cambie la página al modo de vista previa.

  14. Haga clic en el botón Haga clic aquí.

En este punto, el tamaño de la imagen habrá aumentado a 300px.

Nota:

Los disparadores y las acciones están diseñados para soportar la comunicación entre componentes. No están diseñados para crear o gestionar estados. Si refresca la página, esta volverá a su estado original, puesto que no se han emitido disparadores ni se han ejecutado acciones.

Continúe con Paso 9: Crear un título diferente para cada instancia del componente.