Вопросы по сниппетам

Как можно достать данные из контекста в Лии и использовать их в блоке "текст"?

Внутри текстового блока сценария можно получить доступ к контексту. Рассмотрим пример с установкой фактов из сниппета:

sync function snippet(core = new Core(), context = new Context()) {
    // Financial data configuration
    const balanceArray = [100, 200, 300];
    const currencies = ['USD', 'EUR', 'RUB'];

    // Client configuration
    const clientConfig = {
        type: 'vk',
        phone: 892512312312
    };

    // Set balance-related values
    context.set('balance', balanceArray);
    context.set('first_balance', balanceArray[0]);
    context.set('array', [...balanceArray]);

    // Set client information
    context.set('client_type', clientConfig.type);
    context.set('phone', clientConfig.phone);
    context.set('param_fill');

    // Set currency information
    context.set('currency', currencies);
}

По умолчанию mustache заменяет спец. символы на их html код (например, кавычку превращает в “"”). Если вы хотите получить строку без кодирования, используйте в шаблоне текста тройные фигурные скобки {{{paramName}}}. Например, ⁣{{phone}}}.

В случае ошибки выполнения сниппета (переход в ветку Ошибка) факты контекста, установленные в данном сниппете, не сохраняются. Любые события (реакции), генерируемые внутри сниппета, не отправляются.

Правильнее ли отправлять динамические данные после запроса из сниппета через core.sendText()?

Оба варианта будут корректными, выбор зависит от того, каким вариантом удобнее управлять команде в проекте.

Функция core.sendText отправляет строку (текст) из сниппета.

Пример отправки текстовой строки:

core.sendText('пример текста')

Пример отправки текста из заранее установленной переменной:

core.sendText(text5)

Функция core.sendButtons отправляет текстовые кнопки. Пример сниппета с core.sendButtons:

core.sendButtons('Are you agree with our conditions?',[
          {type: 'text', title: 'on the button', params: {text: 'sends as text'}},
          {type: 'text', title: 'on the button', params: {text: 'sends as text'}},
          {type: 'text', title: 'on the button', params: {text: 'sends as text'}},
        ]
);

Last updated