Блок Условия
Этот блок позволяет вам направить бота на определенный экран в зависимости от выполнения определенных условий.
Вы можете посмотреть пошаговую видеоинструкцию по использованию блока Условия:
Параметры
В качестве условий вы можете использовать любое выражение на JavaScript. Также вы можете указать множество условий и для каждого из них сделать свой переход на нужный экран. Таким образом вы можете программировать нелинейную логику диалога.
Добавление нескольких выражений
Если в один блок Условия вы добавите несколько выражений одно под другим, то выражения будут проверяться сверху вниз.
Если выполнено первое сверху условие, то бот будет переходить по ветке этого условия и игнорировать все условия ниже.
Если первое сверху выражение не выполняется, будет проверяться второе выражение. И так до тех пор, пока не будет выполнено одно из них. Когда одно из выражений будет выполнено, все выражения ниже него будут проигнорированы.
Каждое условие имеет выход из блока, который может быть соединен с разными экранами. Следовательно, если каждое выражение в блоке Условия связано с отдельным экраном, то количество веток от блок а будет равно количеству добавленных условий, плюс условие else
.
Else
После добавления условий в блок в нем автоматически появится еще одно условие else
. Оно выполняется, если ни одно из условий в блоке не истинно, и формирует отдельную ветку, по которой может переходить бот в сценарии.
Переменные
Вы можете использовать переменные, полученные ботом на предыдущих экранах, или любые системные переменные Aimylogic.
JavaScript
Вы можете использовать любые операторы и функции JavaScript при написании условий. Также вы можете использовать функции библиотеки Underscore для более сложных случаев, где нужны различные преобразования данных — объектов, массивов и так далее.
Примеры
Присвоение
Чтобы присвоить значение переменной, используйте оператор =
.
Если вы присваиваете переменной текст, то поместите текст в кавычки. Например:
$choice = "купить"
Это условие присвоит переменной $choice
значение купить
, и бот в ответ отправит сообщение:
Вы выбрали купить.
Если вы хотите присвоить переменной число, то его помещать в кавычки не нужно:
$age = 20
Переменной $age
присвоено значение 20
.
Бот ответит:
Вам 20 лет.
Присвоение нуля
При присвоении переменной значения 0
выражение имеет такую же запись, как при присвоении любого другого числа:
$score = 0
Выражение a = 1
по спецификации JavaScript трактуется как true
, а выражение a = 0
трактуется как false
. Поэтому, если вы присваиваете 0
, бот пойдет по ветке else
.
Для корректного присвоения нуля связывайте и true
, и else
с одним и тем же экраном, если:
- вы присваиваете переменной значение
0
; - вы присваиваете переменной другую переменную, значение которой может быть равно
0
; - вы присваиваете число, целая часть которого равна
0
; - в переменную помещается текст или число, введенные клиентом, и вы предполагаете, что клиент может ввести
0
.
Такая необходимость связана с особенностями языка JavaScript.
Математические операции
В блоке Условия вы можете совершать математические операции. В JavaScript складывать можно не только числа, но и строки (текст). Например, здесь в результате сложения строковых переменных $answer1
и $answer2
будет выведено ab
: