Установка действий

Можно задать компонент для использования регистрации действия, чтобы его можно было поместить на страницу, которая будет выполнять действия в пределах компонента.

Регистрация действий

Действия вызываются в компонентах при срабатывании триггеров. Компонент может зарегистрировать любое количество действий, а также определить полезные данные, поддерживаемые действием. Выбирая действия, пользователи могут ввести полезные данные, передаваемые действию.

Как и при регистрации триггеров, действия, поддерживаемые компонентом, можно зарегистрировать в данных регистрации appinfo.json для темы.

Ниже приведен пример регистрации действия.

  1. Измените файл appinfo.json своего компонента и обновите запись "actions":[],.
    "actions": [{
      "actionName": "helloWorldChangeWhoIAm",
      "actionDescription": "Change Who I Am",
      "actionPayload": [{
        "name": "whoAreYou",
        "description": "Who are you?",
        "type": {
          "ojComponent": {
           "component": "ojInputText"}
          },
        },
        "value": ""
      }]
    }]
  2. После регистрации действие отображается в диалоговом окне действия, которое вызывается, если нажать имя триггера на вкладке Ссылка панели "Настройка" компонента.

Выполнение действий

После регистрации действия компоненты можно перетащить на страницу, на которой действия выполняются в пределах компонента. Чтобы выполнить действие, компонент должен прослушивать сообщение EXECUTE_ACTION. Это сообщение также включает передаваемые действию полезные данные, из которых необходимо извлечь ожидаемые значения.

Например, чтобы прослушивать сообщение EXECUTE_ACTION, измените файл render.js и обновите объект ViewModel с учетом следующих записей:
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);
  }
};

В результате создается функция JavaScript для выполнения действия, а затем используется комплект Sites SDK для вызова функции при появлении сообщения EXECUTE_ACTION.

Это действие вызывается при появлении сообщения EXECUTE_ACTION, а компонент обрабатывает только те действия, для обработки которых он предназначен. Для этого необходимо проверить имя действия, чтобы убедиться, что его можно обработать.

Полезные данные для действия — это набор значений. В данном примере предполагается, что значение — это первая запись в массиве. Как правило, значения полезных данных должны быть указаны в массиве.

Примечание.:

Поскольку прослушиватель действий представляет собой обратный вызов, необходимо использовать замыкание JavaScript или соответствующим образом привязать функцию, чтобы обеспечить доступ к ViewModel при выполнении функции.