Уведомление о переводе ИИ
Эта документация была автоматически переведена ИИ.
Условные операторы
Условные операторы позволяют динамически управлять отображением или скрытием содержимого в документе на основе значений данных. Предусмотрены три основных способа записи условий:
- Встроенные условия: Непосредственно выводят текст (или заменяют его другим текстом).
- Условные блоки: Отображают или скрывают раздел документа, подходят для нескольких тегов, абзацев, таблиц и т. д.
- Умные условия: Непосредственно удаляют или сохраняют целевые элементы (например, строки, абзацы, изображения и т. д.) с помощью одного тега, что обеспечивает более лаконичный синтаксис.
Все условия начинаются с форматтера логического сравнения (например, ifEQ, ifGT и т. д.), за которым следуют форматтеры действий (такие как show, elseShow, drop, keep и т. д.).
Обзор
В условных операторах поддерживаются следующие логические операторы и форматтеры действий:
-
Логические операторы
- ifEQ(value): Проверяет, равно ли значение данных указанному значению.
- ifNE(value): Проверяет, не равно ли значение данных указанному значению.
- ifGT(value): Проверяет, больше ли значение данных указанного значения.
- ifGTE(value): Проверяет, больше или равно ли значение данных указанного значения.
- ifLT(value): Проверяет, меньше ли значение данных указанного значения.
- ifLTE(value): Проверяет, меньше или равно ли значение данных указанного значения.
- ifIN(value): Проверяет, содержится ли значение данных в массиве или строке.
- ifNIN(value): Проверяет, не содержится ли значение данных в массиве или строке.
- ifEM(): Проверяет, пусты ли данные (например, null, undefined, пустая строка, пустой массив или пустой объект).
- ifNEM(): Проверяет, не пусты ли данные.
- ifTE(type): Проверяет, равен ли тип данных указанному типу (например, "string", "number", "boolean" и т. д.).
- and(value): Логическое "И", используется для соединения нескольких условий.
- or(value): Логическое "ИЛИ", используется для соединения нескольких условий.
-
Форматтеры действий
- :show(text) / :elseShow(text): Используются во встроенных условиях для непосредственного вывода указанного текста.
- :hideBegin / :hideEnd и :showBegin / :showEnd: Используются в условных блоках для скрытия или отображения разделов документа.
- :drop(element) / :keep(element): Используются в умных условиях для удаления или сохранения указанных элементов документа.
В следующих разделах представлена подробная информация о синтаксисе, примеры и результаты для каждого варианта использования.
Встроенные условия
1. :show(text) / :elseShow(text)
Синтаксис
{данные:условие:show(текст)}
{данные:условие:show(текст):elseShow(альтернативный текст)}
Пример
Предположим, данные:
Шаблон выглядит следующим образом:
val2 = {d.val2:ifGT(3):show('high')}
val2 = {d.val2:ifGT(3):show('high'):elseShow('low')}
val5 = {d.val5:ifGT(3):show('high')}
Результат
val2 = 2
val2 = low
val5 = high
2. Конструкция Switch Case (Множественные условия)
Синтаксис
Используйте последовательные форматтеры условий для создания структуры, похожей на switch-case:
{данные:ifEQ(значение1):show(результат1):ifEQ(значение2):show(результат2):elseShow(результат по умолчанию)}
Или достигните того же с помощью оператора or:
{данные:ifEQ(значение1):show(результат1):or(данные):ifEQ(значение2):show(результат2):elseShow(результат по умолчанию)}
Пример
Данные:
{
"val1": 1,
"val2": 2,
"val3": 3
}
Шаблон:
val1 = {d.val1:ifEQ(1):show(A):ifEQ(2):show(B):elseShow(C)}
val2 = {d.val2:ifEQ(1):show(A):ifEQ(2):show(B):elseShow(C)}
val3 = {d.val3:ifEQ(1):show(A):ifEQ(2):show(B):elseShow(C)}
Результат
val1 = A
val2 = B
val3 = C
3. Многопеременные условия
Синтаксис
Используйте логические операторы and/or для проверки нескольких переменных:
{данные1:ifEQ(условие1):and(.данные2):ifEQ(условие2):show(результат):elseShow(альтернативный результат)}
{данные1:ifEQ(условие1):or(.данные2):ifEQ(условие2):show(результат):elseShow(альтернативный результат)}
Пример
Данные:
Шаблон:
and = {d.val2:ifEQ(1):and(.val5):ifEQ(5):show(OK):elseShow(KO)}
or = {d.val2:ifEQ(1):or(.val5):ifEQ(5):show(OK):elseShow(KO)}
Результат
Логические операторы и форматтеры
В следующих разделах описанные форматтеры используют синтаксис встроенных условий в следующем формате:
{данные:форматтер(параметр):show(текст):elseShow(альтернативный текст)}
1. :and(value)
Синтаксис
{данные:ifEQ(значение):and(новые данные или условие):ifGT(другое значение):show(текст):elseShow(альтернативный текст)}
Пример
{d.car:ifEQ('delorean'):and(.speed):ifGT(80):show('TravelInTime'):elseShow('StayHere')}
Результат
Если d.car равно 'delorean' И d.speed больше 80, то вывод TravelInTime; в противном случае — StayHere.
2. :or(value)
Синтаксис
{данные:ifEQ(значение):or(новые данные или условие):ifGT(другое значение):show(текст):elseShow(альтернативный текст)}
Пример
{d.car:ifEQ('delorean'):or(.speed):ifGT(80):show('TravelInTime'):elseShow('StayHere')}
Результат
Если d.car равно 'delorean' ИЛИ d.speed больше 80, то вывод TravelInTime; в противном случае — StayHere.
3. :ifEM()
Синтаксис
{данные:ifEM():show(текст):elseShow(альтернативный текст)}
Пример
null:ifEM():show('Result true'):elseShow('Result false')
[]:ifEM():show('Result true'):elseShow('Result false')
Результат
Для null или пустого массива вывод Result true; в противном случае — Result false.
4. :ifNEM()
Синтаксис
{данные:ifNEM():show(текст):elseShow(альтернативный текст)}
Пример
0:ifNEM():show('Result true'):elseShow('Result false')
'homer':ifNEM():show('Result true'):elseShow('Result false')
Результат
Для непустых данных (таких как число 0 или строка 'homer') вывод Result true; для пустых данных — Result false.
5. :ifEQ(value)
Синтаксис
{данные:ifEQ(значение):show(текст):elseShow(альтернативный текст)}
Пример
100:ifEQ(100):show('Result true'):elseShow('Result false')
'homer':ifEQ('homer'):show('Result true'):elseShow('Result false')
Результат
Если данные равны указанному значению, вывод Result true; в противном случае — Result false.
6. :ifNE(value)
Синтаксис
{данные:ifNE(значение):show(текст):elseShow(альтернативный текст)}
Пример
100:ifNE(100):show('Result true'):elseShow('Result false')
100:ifNE(101):show('Result true'):elseShow('Result false')
Результат
Первый пример выводит Result false, второй пример выводит Result true.
7. :ifGT(value)
Синтаксис
{данные:ifGT(значение):show(текст):elseShow(альтернативный текст)}
Пример
1234:ifGT(1):show('Result true'):elseShow('Result false')
-23:ifGT(19):show('Result true'):elseShow('Result false')
Результат
Первый пример выводит Result true, второй пример выводит Result false.
8. :ifGTE(value)
Синтаксис
{данные:ifGTE(значение):show(текст):elseShow(альтернативный текст)}
Пример
50:ifGTE(-29):show('Result true'):elseShow('Result false')
1:ifGTE(768):show('Result true'):elseShow('Result false')
Результат
Первый пример выводит Result true, второй пример выводит Result false.
9. :ifLT(value)
Синтаксис
{данные:ifLT(значение):show(текст):elseShow(альтернативный текст)}
Пример
-23:ifLT(19):show('Result true'):elseShow('Result false')
1290:ifLT(768):show('Result true'):elseShow('Result false')
Результат
Первый пример выводит Result true, второй пример выводит Result false.
10. :ifLTE(value)
Синтаксис
{данные:ifLTE(значение):show(текст):elseShow(альтернативный текст)}
Пример
5:ifLTE(5):show('Result true'):elseShow('Result false')
1290:ifLTE(768):show('Result true'):elseShow('Result false')
Результат
Первый пример выводит Result true, второй пример выводит Result false.
11. :ifIN(value)
Синтаксис
{данные:ifIN(значение):show(текст):elseShow(альтернативный текст)}
Пример
'car is broken':ifIN('is'):show('Result true'):elseShow('Result false')
[1,2,'toto']:ifIN(2):show('Result true'):elseShow('Result false')
Результат
Оба примера выводят Result true (поскольку строка содержит 'is', а массив содержит 2).
12. :ifNIN(value)
Синтаксис
{данные:ifNIN(значение):show(текст):elseShow(альтернативный текст)}
Пример
'car is broken':ifNIN('is'):show('Result true'):elseShow('Result false')
[1,2,'toto']:ifNIN(2):show('Result true'):elseShow('Result false')
Результат
Первый пример выводит Result false (поскольку строка содержит 'is'), а второй пример выводит Result false (поскольку массив содержит 2).
13. :ifTE(type)
Синтаксис
{данные:ifTE('тип'):show(текст):elseShow(альтернативный текст)}
Пример
'homer':ifTE('string'):show('Result true'):elseShow('Result false')
10.5:ifTE('number'):show('Result true'):elseShow('Result false')
Результат
Первый пример выводит Result true (так как 'homer' является строкой), а второй пример выводит Result true (так как 10.5 является числом).
Условные блоки
Условные блоки используются для отображения или скрытия раздела документа; как правило, они охватывают несколько тегов или целый блок текста.
1. :showBegin / :showEnd
Синтаксис
{данные:ifEQ(условие):showBegin}
Содержимое блока документа
{данные:showEnd}
Пример
Данные:
Шаблон:
Banana{d.toBuy:ifEQ(true):showBegin}
Apple
Pineapple
{d.toBuy:showEnd}Grapes
Результат
Когда условие выполняется, содержимое между тегами отображается:
Banana
Apple
Pineapple
Grapes
2. :hideBegin / :hideEnd
Синтаксис
{данные:ifEQ(условие):hideBegin}
Содержимое блока документа
{данные:hideEnd}
Пример
Данные:
Шаблон:
Banana{d.toBuy:ifEQ(true):hideBegin}
Apple
Pineapple
{d.toBuy:hideEnd}Grapes
Результат
Когда условие выполняется, содержимое между тегами скрывается, в результате чего получаем: