Логические функции CreateUiDefinition
Эти функции можно использовать в условных выражениях. Некоторые функции могут не поддерживать все типы данных JSON.
и
Возвращает true
, если все параметры имеют значение true
. Данная функция поддерживает два или более параметров исключительно логического типа.
В следующем примере возвращается true
.
"[and(equals(0, 0), equals('web', 'web'), less(1, 2))]"
В следующем примере возвращается false
.
"[and(equals(0, 0), greater(1, 2))]"
coalesce
Возвращает значение первого параметра, отличное от null. Эта функция поддерживает все типы данных JSON.
Предположим, что element1
и element2
не определены. В следующем примере возвращается "Contoso"
.
"[coalesce(steps('demoStep').element1, steps('demoStep').element2, 'Contoso')]"
Эта функция особенно полезна в контексте необязательного вызова, который происходит в связи с действием пользователя после загрузки страницы. Например, если ограничения, накладываемые на одно поле в пользовательском интерфейсе, зависят от текущего выбранного значения другого, изначально невидимого. В этом случае coalesce()
можно использовать так, чтобы функция синтаксически соответствовала времени загрузки страницы, при этом желаемый эффект работал при взаимодействии пользователя с полем.
Учитывайте DropDown
, он позволяет пользователю выбрать один из нескольких различных типов баз данных.
{
"name": "databaseType",
"type": "Microsoft.Common.DropDown",
"label": "Choose database type",
"toolTip": "Choose database type",
"defaultValue": "Oracle Database",
"visible": "[bool(steps('section_database').connectToDatabase)]""constraints": {
"allowedValues": [
{
"label": "Azure Database for PostgreSQL",
"value": "postgresql"
},
{
"label": "Oracle Database",
"value": "oracle"
},
{
"label": "Azure SQL",
"value": "sqlserver"
}
],
"required": true
},
Чтобы передать условие к действию другого поля в текущем выбранном значении этого поля, coalesce()
следует применять так, как показано ниже.
"regex": "[concat('^jdbc:', coalesce(steps('section_database').databaseConnectionInfo.databaseType, ''), '.*$')]",
Эта функция необходима, так как databaseType
изначально не отображается и поэтому не имеет значения, что приводит к неправильной оценке всего выражения.
равно
Возвращает true
, если оба параметра имеют один и тот же тип и значение. Эта функция поддерживает все типы данных JSON.
В следующем примере возвращается true
.
"[equals(0, 0)]"
В следующем примере возвращается true
.
"[equals('web', 'web')]"
В следующем примере возвращается false
.
"[equals('abc', ['a', 'b', 'c'])]"
greater
Возвращает true
, если первый параметр строго больше значения второго параметра. Эта функция поддерживает только параметры типа "число" и "строка".
В следующем примере возвращается false
.
"[greater(1, 2)]"
В следующем примере возвращается true
.
"[greater('9', '10')]"
greaterOrEquals
Возвращает true
, если первый параметр больше или равен значению второго параметра. Эта функция поддерживает только параметры типа "число" и "строка".
В следующем примере возвращается true
.
"[greaterOrEquals(2, 2)]"
if
Возвращает значение в зависимости от того, выполняется ли условие. Первый параметр — это проверяемое условие. Второй параметр — это значение, возвращаемое, если условие имеет значение "истина". Третий параметр — это значение, возвращаемое, если условие имеет значение "ложь".
В приведенном ниже примере возвращается yes
.
"[if(equals(42, mul(6, 7)), 'yes', 'no')]"
less
Возвращает true
, если первый параметр строго меньше значения второго параметра. Эта функция поддерживает только параметры типа "число" и "строка".
В следующем примере возвращается true
.
"[less(1, 2)]"
В следующем примере возвращается false
.
"[less('9', '10')]"
lessOrEquals
Возвращает true
, если первый параметр меньше или равен значению второго параметра. Эта функция поддерживает только параметры типа "число" и "строка".
В следующем примере возвращается true
.
"[lessOrEquals(2, 2)]"
not
Возвращает true
, если параметр имеет значение false
. Эта функция поддерживает только параметры логического типа.
В следующем примере возвращается true
.
"[not(false)]"
В следующем примере возвращается false
.
"[not(equals(0, 0))]"
or
Возвращает true
, если хотя бы один из параметров имеет значение true
. Эта функция поддерживает два или более параметров только логического типа.
В следующем примере возвращается true
.
"[or(equals(0, 0), equals('web', 'web'), less(1, 2))]"
В следующем примере возвращается true
.
"[or(equals(0, 0), greater(1, 2))]"
Следующие шаги
- Общие сведения об Azure Resource Manager см. в этой статье.