Условные выражения
Условные выражения позволяют динамически управлять отображением или скрытием контента в документе на основе значений данных. Есть три основных способа задавать условия:
- Встроенные условия: выводить текст напрямую (или заменять его другим текстом).
- Блоки условий: показывать или скрывать участок документа; подходит для нескольких тегов, абзацев, таблиц и т. п.
- Умные условия: одной меткой удалять или сохранять целевые элементы документа (строки, абзацы, изображения и т. д.) — более лаконичный синтаксис.
Все условия начинаются с форматтера для логической проверки (например, 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)
Синтаксис
Пример
Предположим, данные такие:
Шабло н:
Результат
2. Несколько условий (switch-case)
Синтаксис
Используйте последовательные форматтеры условий, чтобы собрать структуру, похожую на switch-case:
Или добейтесь того же с помощью оператора or:
Пример
Данные:
Шаблон:
Результат
3. Условия по нескольким переменным
Синтаксис
Используйте логические операторы and/or, чтобы проверять несколько переменных:
Пример
Данные:
Шаблон:
Результат
Логические операторы и форматтеры
В следующих разделах описанные форматтеры используют синтаксис встроенных условий в таком формате:
1. :and(value)
Синтаксис
Пример
Результат
Если d.car равно 'delorean' и d.speed больше 80, вывод будет TravelInTime; иначе — StayHere.
2. :or(value)
Синтаксис
Пример
Результат
Если d.car равно 'delorean' или d.speed больше 80, вывод будет TravelInTime; иначе — StayHere.
3. :ifEM()
Синтаксис
Пример
Результат
Для null или пустого массива вывод будет Result true; иначе — Result false.
4. :ifNEM()
Синтаксис
Пример
Результат
Для непустых данных (например числа 0 или строки 'homer') вывод будет Result true; для пустых данных — Result false.
5. :ifEQ(value)
Синтаксис
Пример
Результат
Если значение данных равно указанному, вывод будет Result true; иначе — Result false.
6. :ifNE(value)
Синтаксис
Пример
Результат
В первом примере выводится Result false, во втором — Result true.
7. :ifGT(value)
Синтаксис
Пример
Результат
В первом примере выводится Result true, во втором — Result false.
8. :ifGTE(value)
Синтаксис
Пример
Результат
В первом примере выводится Result true, во втором — Result false.
9. :ifLT(value)
Синтаксис
Пример
Результат
В первом примере выводится Result true, во втором — Result false.
10. :ifLTE(value)
Синтаксис
Пример
Результат
В первом примере выводится Result true, во втором — Result false.
11. :ifIN(value)
Синтаксис
Пример
Результат
Оба примера выводят Result true (потому что строка содержит 'is', а массив содержит 2).
12. :ifNIN(value)
Синтаксис
Пример
Результат
Первый пример выводит Result false (потому что строка содержит 'is'), и второй пример тоже выводит Result false (потому что массив содержит 2).
13. :ifTE(type)
Синтаксис
Пример
Результат
В первом примере выводится Result true (так как 'homer' — строка), во втором — Result true (так как 10.5 — число).
Блоки условий
Блоки условий используются, чтобы показывать или скрывать участок документа. Обычно ими «оборачивают» несколько тегов или целый блок текста.
1. :showBegin / :showEnd
Синтаксис
Пример
Данные:
Шаблон:

