intent:
Для создания интентов:
- Перейдите в свой проект Code в личном кабинете Studio.
- Выберите в боковом меню Редактор. Откройте раскрывающийся список.
- Выберите Интенты.
intent: — после тега записывается путь к интенту.
Локальный тег intent: активен только в контексте диалога, переход по тегу возможен из ближайшего родительского, из любого дочернего или из соседнего стейтов. Глобальный тег intent!:
позволяет осуществить переход диалога в данный стейт из любого другого стейта.
Область срабатывания локального тега
Локальные декларативные теги срабатывают в этих случаях:
- При переходе между стейтами, которые находятся на одном уровне и внутри одного родительского стейта. Примеры: Из стейта Розоцветные в стейт Цитрусовые и обратно. Из стейта Яблоко в стейт Груша и обратно
- При переходе из родительского стейта в дочерний, но не более чем на один уровень вложенности. Примеры: Из стейта Фрукты в стейт Розоцветные. Из стейта Розоцветные в стейт Яблоко
- При переходе из дочернего стейта в родительский на любое количество уровней. Примеры: Из стейта Яблоко в стейт Розоцветные. Из стейта Яблоко в стейт Фрукты
Локальные декларативные теги НЕ срабатывают в этих случаях:
- При переходе из дочернего в чужой родительский стейт. Примеры: Из стейта Груша в стейт цитрусовые. Из стейта Лимон в стейт Розоцветные
- При переходе из родительского стейта в чужой дочерний. Примеры: Из стейта Розоцветные в стейт Апельсин. Из стейта Цитрусовые в стейт Груша
- При переходе из родительского стейта в дочерний на 2 и более уровней. Примеры: Из стейта Фрукты в стейт Яблоко. Из стейта Фрукты в стейт Апельсин
state: Фрукты
intent: /Фрукты
a: Выберите тип фрукта
state: Розоцветные
intent: /Розоцветные
a: Выберите фрукт
state: Яблоко
intent: /Яблоко
a: Это Яблоко, оно красное
state: Груша
intent: /Груша
a: Это Груша, она зеленая
state: Цитрусовые
intent: /Цитрусовые
a: Выберите фрукт
state: Апельсин
intent: /Апельсин
a: Это Апельсин, он оранжевый
state: Лимон
intent: /Лимон
a: Это Лимон, он желтый
При этом теги срабатывают в порядке зависимости от расстояния между текущим и целевым стейтами: наибольший приоритет имеют вложенные стейты (дочерние), затем стейты на том же уровне (соседние), затем родительские.
Тип значения
- string — путь к интенту.
Параметры
fromState
(string array). Определяет стейт, из которого возможен переход по данному интенту. Помогает адресовать вопрос из определенного контекста в нужный стейт без использования глобальных интентов и покинуть модальный контекст по определенному запросу.toState
(string). Определяет стейт, в который перейдет смартап по данному интенту. Помогает адресовать вопрос из определенного стейта в нужный контекст без использования глобальных интентов и покинуть модальный контекст по определенному запросу. При использовании параметра, интент, заданный в теге, будет срабатывать только в контексте текущего стейта. При переходе выполняются все реакции заданного стейта (аналогично тегу go!:).onlyThisState
(boolean). Используется совместно с параметромfromState
. ЕслиonlyThisState=true
, переход по интенту с этим параметром возможен только из стейта, указанного в параметреfromState
, но не из вложенных стейтов. Если параметрonlyThisState
не указан? переход также можно выполнить из стейтов, вложенных в стейт, заданный вfromState
.
Вложенные данные
- multiline data
Синтаксис
При записи пути к интенту разделительным знаком является /
:
/hi
— путь составляется из символа/
и названия интента./hi/politely
— вложенный интент. Уровень вложенности интентов не ограничен.
Примеры значений
theme: /
state: Hello
intent: /hi
a: Здравствуйте.
state: Goodbye
intent: /bye
a: До свидания.
state: CatchAll
event: noMatch
a: Вы сказали: {{ $request.query }}
state: Time
intent: /Который час || fromState=/КакДела, onlyThisState = true
intent!:
intent!: — после тега записывается путь к интенту.
Глобальный тег intent!:
позволяет осуществить переход диалога в данный стейт из любого другого стейта. Локальный тег intent: активен только в контексте диалога, переход тегу возможен из ближайшего родительского, из любого дочернего или из соседнего стейтов.
Тип значения
- string — путь к интенту.
Параметры
fromState
(string array)toState
(string)onlyThisState
(boolean)
Вложенные данные
- multiline data
Синтаксис
При записи пути к интенту разделительным знаком является /
:
/hi
— путь составляется из символа/
и названия интента./hi/politely
— вложенный интент. Уровень вложенности интентов не ограничен.
Примеры значений
theme: /
state: Hello
intent!: /hi
a: Здравствуйте.
state: Goodbye
intent!: /bye
a: До свидания.
state: CatchAll
event: noMatch
a: Вы сказали: {{ $request.query }}