単純なアクセスに加えて、構成を使用して、ワークフロー マークアップのさまざまなバージョンを生成できます。たとえば、複数のテキスト入力でループを使用してマークアップを生成したり、チェックボックス入力に応じて条件付きでマークアップを生成したりできます。
ヘルパー関数は、多くの場合、この目的に最適です。次のセクションでは、使用可能なヘルパーとその使用方法について説明します。
以下は、キーワードとその説明のリストとコード例です。
{#assign "myval"}
これは変数
{/assign}です
+、/-*) %を実行できるようにします。{数学myNum"+"5}
@index アクセスでき、現在のキー名には から @keyアクセスできます。また @first 、 と @lastを使用して、イテレーションの最初/最後のステップにいるかどうかを確認することもできます{#each myObj}
{@index}
{/それぞれ}
==,>,,<,>= と演算子 <= として使用できます。ハッシュ パラメーターを使用して、カウンターをインクリメントまたはデクリメントできます。{#for 5 ">" 0 after="-2"}
{これ}
{/for}
==、 !=、 <、 <=は演算子 equalsIgnoreCase として使用できます。{comapre myStr "==" "ハロー}
{#switch タイプ}
{#case "記事"}
これは記事
です{/case}
{#case "resource"}
これはリソース
です{/case}
isCar=false と hasLicense=true:{#if (または (and isCar hasPlate) (and (not isCar) hasLicense)))}
運転が許可されています。
{その他}
運転は許可されていません。
trueVar=true"This is text" を出力として提供するコード例:{trueVar でなければ}
これはテキスト
{/unless}です
TRUE コード FALSE 例:{と isCar hasPlate}
TRUE コード FALSE 例:{または isCar hasPlate}
isCar=false出力として返すTRUEコード例:{isCarではない}
size、 is_not_singleton、および演算子 is_singleton として使用できます。
{コレクションmyColl "サイズ"}
{#each バー}
{ルックアップ../foo@index}
{/each}
{#with myVal}
{#ech myObj}
{/それぞれ}
{/with}
以下は、キーワードとその説明のリストとコード例です。
"lowercase"、、 "lowercase_underscore"または "lowercase_hyphen") に特定の書式を適用できます。{caseFormat myStr "lowercase_underscore"}
{capitalize最初の値}
{カット値 " "}
FALSEに使用する代替値を定義できます。それ以外の場合は、元の値が使用されます。{defaultIfEmpty 値 "nothing"}
{join "a", "b", "c" " // " prefix="" suffix=""}
{中心の値 size=19 pad=" "}
{ljust値20パッド= ""}
{rjust 値 20 pad=" "}
{部分文字列値 3}
{部分文字列値 0 3}
{低い値}
{上限値}
{スラッグ化値}
value="Hello %s"param1="TeamViewer"として提供するコード例:{stringFormat 値 param1}
{stripTags 値}
{値を完全に大文字にする=false}
{値の省略形 6}
{wordWrap 値 5}
{値を置き換える "..." "岩"}
FALSE、および(オプションで)NULLの値をTRUE、「yes」、「no」、「maybe」などの値を持つ文字列にマップできます。{yesno value yes="yes" no="no" maybe="maybe"}
"full" をクリックして、「Tuesday, June 19, 2012」 などの形式で日付を表示します。"medium" をクリックして、"Jun 19, 2012" などの形式で日付を表示します。"short" 日付を "6/19/12" などの形式で表示するには"pattern" をクリックして、日付をカスタムパターンで表示します。{dateFormat date ["フォーマット"]
[format="フォーマット"]
[tz=timeZone|timeZoneId]}
groupingUsed を使用して、グループ化をフォーマットで使用するかどうかを定義します。maximumFractionDigits 小数部分で許容される最大桁数を定義するにはmaximumIntegerDigits 整数部分の最大桁数を定義するにはminimumFractionDigits 小数部分の最小桁数を定義するにはminimumIntegerDigits 整数部分の最小桁数を定義するにはparseIntegerOnly 数値を整数のみとして解析するかどうかを定義するにはroundingMode数値の四捨五入方法を定義するには ( UP、 、 、 HALF_EVENUNNECESSARYFLOORHALF_DOWNHALF_UPDOWNCEILING{numberFormat number ["format"] [locale=default]}
以下は実際の例です。
"General": {
"use_camera": {
"title": "スマートグラスのカメラを使用する",
"inputType": "checkbox-input",
"value": "true"
}
}
}<
onresume>
<rule id="auto">
<expression>1</expression><
actions>
§{#if General.use_camera.value}§
<action ref="start_cam"/>
§{/if}§
</actions>
</rule><
/onresume>
ご覧のとおり、ここでの if キーワードを使用すると、対応する構成パラメーターがtrueに設定されている場合にのみアクションを実行できます。すべてのキーワードは、最初にハッシュタグ(#)を書き込むことによってスコープ内で使用されることに注意することが重要です。
each キーワードを使用した別の例を次に示します。
{
"構成": {
"buttons": {
"title": "ファンクションキー",
"inputType": "multiple-dropdown-input",
"elements": [
{
"name": "TAB",
"content": "ANDRRES_key_tab",
"type": "TEXT",
"translatable": true
},
{
"name": "DELETE",
"content": "ANDRRES_key_delete",
"type": "TEXT",
"translatable": true
},
{
"name": "BACKSPACE",
"content": "ANDRRES_key_backspace",
"type": "TEXT",
"translatable": true
},
{
"name": "F1",
"content": "F1",
"speech_cmd": "F 1",
"type": "TEXT"
},
{
"name": "F2",
"content": "F2",
"speech_cmd": "F 2",
"type": "TEXT"
}
],
"value": [
{
"name": "TAB",
"content": "ANDRRES_key_tab",
"type": "TEXT",
"translatable": true
},
{
"name": "DELETE",
"content": "ANDRRES_key_delete",
"type": "TEXT",
"translatable": true
}
]
}
}
}<ui_update
id="show_key_input_footer">
<widget_params>
<ui_element name="FOOTER_L2">
<param name="VISIBILITY">INVISIBLE</param><
/ui_element>
<ui_element name="RETURN_L1"><
param name="menu_id" descriptor="">0</param>
</ui_element>
§{#each Configuration.buttons.value}§
<ui_element name="§{name}§">
<param name="menu_id" descriptor="">§{math @index "+" 1}§</param><
/ui_element>
§{#if@last}§
§{#if Configuration.enable_camera.value}§
<ui_element name="CAMERA">
<param name="MENU_ID">§{math @../index "+" 2}§</param><
/ui_element>
<ui_element name="ENTER">
<param name="MENU_ID">§{math @../index "+" 3}§</param><
/ui_element>
§{else}§
<ui_element name="ENTER">
<param name="MENU_ID">§{math @.. /index "+" 2}§</param> </ui_element> §{/if}§ §{/if}§ §{/each}§ </widget_params> </ui_update>
この例では、複数レベルのドロップダウン メニューを使用して、ユーザー インターフェイスに表示されるいくつかのボタンを構成します。最後の 2 つのボタンについては、チェックボックス入力が設定されているかどうかに応じてバーコードスキャンが行われ、別のデフォルトボタンもあります。両方のボタンは、インターフェイスの右端に表示されます。ここでわかるように、このような高度に構成可能なコンポーネントを作成することもできます。