注: 以下の翻訳の正確性は検証されていません。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番目の値以下かどうかを確認します。