tgx:else-if#
Дополнительная ветка условия.
Синтаксис#
<div tgx:else-if="role==`admin`">...</div>
Пример 1: минимум (копипаст для старта)#
<div tgx:else-if="role==`admin`">...</div>
Пример 2: реальный сценарий#
<div tgx:if="status==`active`">OK</div>
<div tgx:else-if="status==`hidden`">Hidden</div>
Разбор#
Ставится сразу после блока с tgx:if или другого tgx:else-if.Когда использовать#
- Когда нужно показать/скрыть блок в зависимости от данных пользователя, страницы или формы.
- Когда важно сделать понятный fallback-сценарий (что показывать, если условие не выполнено).
Поведение в runtime#
- Тип: пользовательская директива.
- В sandbox директива
tgx:else-if: разрешена.
Параметры#
Обязательные#
tgx:else-if— DSL-выражение условия.
По умолчанию#
- Обрабатывается только после
tgx:if/tgx:else-if.
Типы#
- DSL expression -> boolean.
Частые ошибки#
- Не разрывайте цепочку
tgx:if -> tgx:else-if -> tgx:elseпромежуточными узлами. - Проверяйте, что в условии используются реальные поля/переменные текущего контекста.
Проверка перед публикацией#
- Пример рендерится без ошибок в sandbox.
- Значения по умолчанию обработаны (
|fallback) там, где данные могут отсутствовать.
См. также#
Важно: связка с tgx:if и DB path#
tgx:else-if использует тот же runtime-процесс, что и tgx:if:
- нет неявного merge результата в
local; - без
-> varDB path работает только как условие.
Если в ветке нужны поля записи, добавьте явную привязку прямо в этой ветке:
<tgx tgx:if="/faq/<< path >> -> faqResolvedDoc">...</tgx>
<tgx tgx:else-if="/faq/<< path >>/alt -> faqAltDoc">
<< faqAltDoc.title >>
</tgx>
Переменные, созданные через -> var, scoped к текущему узлу и не сохраняются в local после выхода из ветки.