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')]"
在頁面載入後因使用者動作而發生的選擇性叫用內容的情況下,這個函式特別有用。 這個情況的一個範例是:如果 UI 中一個欄位的限制式是取決於另一個起初不可見的欄位目前所選的值。 在此情況下,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
根據條件是 true 或 false 傳回值。 第一個參數是要測試的條件。 第二個參數是如果條件為 true 時要傳回的值。 第三個參數是如果條件為 false 時要傳回的值。
下列範例會傳回 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
如果參數評估為 false
,則傳回 true
。 此函式只支援布林值類型的參數。
下列範例會傳回 true
:
"[not(false)]"
下列範例會傳回 false
:
"[not(equals(0, 0))]"
或
如果至少一個參數評估為 true
,則傳回 true
。 此函式只支援布林值類型的兩個或多個參數。
下列範例會傳回 true
:
"[or(equals(0, 0), equals('web', 'web'), less(1, 2))]"
下列範例會傳回 true
:
"[or(equals(0, 0), greater(1, 2))]"
下一步
- 如需 Azure Resource Manager 的簡介,請參閱 Azure Resource Manager 概觀。