При вызове скриптовых расширений, задаваемых в тегах if:, else:, elseif:, script: и макроподстановках в ответах {{}} (тег a:), передаются следующие переменные:
Скрипт может быть задан:
- Непосредственно в стейте.
state: Hello
q!: * меня зовут $Name *
script:
$session.name = $Name
a: Привет, {{$session.name}}!
- Вызовом функции. В таком случае объявляем скрипт в JS-файле и вызываем его в стейте после тега
script.
Например, объявляем скрипт в JS-файле:
function getName() {
var $session = $jsapi.context().session;
$session.name = $Name;
}
Вызываем скрипт в стейте:
state: Hello
q!: * меня зовут $Name *
script: getName()
a: Привет, {{$session.name}}!
Следует отметить, что в JS-файлах ко всем переменным можно обратиться, убрав знак $ и добавив в начало $jsapi.context().
Например, в JS-файле $session, будет иметь вид: $jsapi.context().session.
Объявление переменных: var $session = $jsapi.context().session.