注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
ヘルパーは、Handlebars テンプレート内から呼び出すことができる事前定義された関数です。ヘルパーには名前、パラメーター、戻り値があります。例えば、テンプレート {{add 5 var1}} は、整数 (5) と var1 という名前の変数に対して add ヘルパーを呼び出します。var1 が 7 に設定されている場合、テンプレートは 12 に評価されます。
ヘルパーは以下のカテゴリのいずれかに分類されます。
ヘルパーは Functions エディタでは使用できません。
以下のヘルパーは Handlebars ライブラリから提供されています。各ヘルパーについては Handlebars documentation ↗ を参照してください。
以下のコアヘルパーはクエリやウィジェット内で使用可能です。
toString ヘルパーは、任意の値を JavaScript String() ↗ 関数を使用して文字列に変換します。
{{toString 'hello'}} は "hello" としてレンダリングされます。{{toString 1}} は "1" としてレンダリングされます。{{toString variable}}(コンテキストが { variable: ["hello", "world"] })は "hello,world" としてレンダリングされます。{{toString variable}}(コンテキストが { variable: [1, 2, 3] })は "1,2,3" としてレンダリングされます。{{toString variable}}(コンテキストが { variable: {"hello": "world"} })は "[Object Object]" としてレンダリングされます。toNumber ヘルパーは、任意の値を JavaScript Number() ↗ 関数を使用して数値に変換します。値が数値に変換できない場合、NaN を返します。
{{toNumber 1}} は 1 としてレンダリングされます。{{toNumber '2'}} は 2 としてレンダリングされます。{{toNumber 'hello'}} は NaN としてレンダリングされます。{{toNumber variable}}(コンテキストが { variable: [1, 2, 3] })は NaN としてレンダリングされます。{{toNumber variable}}(コンテキストが { variable: {"hello": "world"} })は NaN としてレンダリングされます。concat ヘルパーは任意の数の引数を取り、最初に各引数を JavaScript String() 関数で文字列に変換してから連結します。
{{concat 1 2}} は "12" としてレンダリングされます。{{concat 'hello' 'world' 2}} は "helloworld2" としてレンダリングされます。{{concat array1 array2}}(コンテキストが { array1: ["hello", "world"], array2: ["again", "and again"] })は "helloworldagainand again" としてレンダリングされます。{{concat 1 2 3 variable}}(コンテキストが { variable: {"hello": "world"} })は "123[Object Object]" としてレンダリングされます。substring ヘルパーは、入力文字列(値)と開始位置および終了位置(任意)を受け取り、それを JavaScript substring() 関数に渡します。これにより、入力文字列のサブ文字列を取得できます。
{{substring 'foo' 0 1}} は "f" としてレンダリングされます。{{substring 'foo' 0 6}} は "foo" としてレンダリングされます。{{substring 'foo' 1}} は "oo" としてレンダリングされます。contains ヘルパーは、配列または文字列(値)と検索する値(searchValue)を受け取り、値が配列に含まれている場合は true を、それ以外の場合は false を返します。これは value.indexOf(searchvalue) !== -1 を呼び出すことで実行されます。
{{contains variable 3}}(コンテキストが { variable: [1, 2, 3] })は true としてレンダリングされます。{{contains variable "hello"}}(コンテキストが { variable: "hello world" })は true としてレンダリングされます。jsonParse ヘルパーは、JSON 文字列を入力として受け取り、JavaScript の JSON.parse ↗ 関数を使用して解析します。
{{jsonParse '\"foo\"'}} は "foo" としてレンダリングされます。{{jsonParse varA}}(コンテキストが "[\"hello\",\"world\"]")は ["hello", "world"] としてレンダリングされます。{{jsonParse varA}}(コンテキストが "{\"varA\":{\"hello\":\"world\",\"foo\":[\"bar\",\"baz\"]}}")は { varA: {"hello": "world", "foo": ["bar", "baz"]} } としてレンダリングされます。{{jsonParse 123}} はコンソールに "jsonParse: Error: value must be a string" というエラーを表示します。{{jsonParse varA}}(コンテキストが "[\"hello\",")はコンソールに "jsonParse: SyntaxError: Unable to parse JSON string" というエラーを表示します。jsonStringify ヘルパーは任意のオブジェクトを入力として受け取り、そのオブジェクトを JSON に変換して返します(JavaScript の JSON.stringify ↗ 関数に渡します)。
{{jsonStringify 'foo'}} は "foo" としてレンダリングされます(ダブルクオートが含まれます)。{{jsonStringify varA}}(コンテキストが { varA: {"hello": "world", "foo": ["bar", "baz"]} })は {"hello":"world","foo":["bar","baz"]} としてレンダリングされます(再びダブルクオートが含まれます)。add ヘルパーは 2 つの数値を加算します。
{{add 20 5}} は 25 としてレンダリングされます。{{add 10 'abc'}} はコンソールに "value must be a number" というエラーを表示します。subtract ヘルパーは、第2引数の数値を第1引数の数値から引きます。
{{subtract 20 5}} は 15 としてレンダリングされます。{{subtract 10 'abc'}} はコンソールに "value must be a number" というエラーを表示します。multiply ヘルパーは 2 つの数値を掛け合わせます。
{{multiply 20 5}} は 100 としてレンダリングされます。{{multiply 10 'abc'}} はコンソールに "value must be a number" というエラーを表示します。divide ヘルパーは、第1引数の数値を第2引数の数値で割ります。
{{divide 20 5}} は 4 としてレンダリングされます。{{divide 10 'abc'}} はコンソールに "value must be a number" というエラーを表示します。max ヘルパーは、任意の数値または数値の配列から最大値を見つけます。
{{max variable}}(コンテキストが { variable: [1, 2, 3] })は 3 としてレンダリングされます。{{max variable 12 15}}(コンテキストが { variable: [1, 2, 3] })は 15 としてレンダリングされます。{{max 'hello' 123}} はコンソールに "value must be a number or a number array" というエラーを表示します。{{max variable}}(コンテキストが { variable: ["hello", "world"] })はコンソールに "value must be a number or a number array" というエラーを表示します。min ヘルパーは、任意の数値または数値の配列から最小値を見つけます。
{{min variable}}(コンテキストが { variable: [1, 2, 3] })は 1 としてレンダリングされます。{{min variable 6 10}}(コンテキストが { variable: [1, 2, 3] })は 1 としてレンダリングされます。{{min 'hello' 123}} はコンソールに "value must be a number or a number array" というエラーを表示します。{{min variable }}(コンテキストが { variable: ["hello", "world"] })はコンソールに "value must be a number or a number array" というエラーを表示します。eq ヘルパーは、2 つの数値または文字列を比較し、それらが等しいかどうかを確認します。
2つの数値に対して eq を使用する場合
{{eq 1 1}} は true としてレンダリングされます。数値または文字列でない値、または異なる型の値に対して eq を使用する場合
{{eq [1, 2] 5}} はコンソールに "type mismatch" というエラーを表示します。if ブロック内で eq を使用する場合
{{#if (eq name 'Steven')}}
ユーザーの名前はStevenです。
{{else}}
ユーザーの名前はStevenではありません。
{{/if}}
コンテキストが { name: "Steven" } の場合は "ユーザーの名前はStevenです。" としてレンダリングされます。
ne ヘルパーは、2 つの数値または文字列を比較し、それらが異なるかどうかを確認します。
{{ne 1 1}} は false としてレンダリングされます。{{ne [1, 2] 5}} はコンソールに "type mismatch" というエラーを表示します。lt ヘルパーは、2 つの数値または文字列を比較し、最初の値が2番目の値より小さいかどうかを確認します。
{{lt 1 2}} は true としてレンダリングされます。{{lt [1, 2] 5}} はコンソールに "type mismatch" というエラーを表示します。le ヘルパーは、2 つの数値または文字列を比較し、最初の値が2番目の値以下かどうかを確認します。