注: 以下の翻訳の正確性は検証されていません。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 番目の数値を引きます。
{{subtract 20 5}}
は 15 にレンダリングされます{{subtract 10 'abc'}}
は、コンソールで "value must be a number" というエラーが表示されます掛け算ヘルパーは二つの数を掛けます。
{{multiply 20 5}}
は 100 に描画されます{{multiply 10 'abc'}}
はコンソールで "value must be a number" というエラーをスローします割り算ヘルパーは最初の数を二番目の数で割ります。
{{divide 20 5}}
は 4 に描画されます{{divide 10 'abc'}}
はコンソールで "value must be a number" というエラーをスローします最大値ヘルパーは与えられた数または数の配列から最大値を探します。
{{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 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 1 1}}
は true に描画されます数または文字列でない値、または異なるタイプの値で等しいを使用する
{{eq [1, 2] 5}}
はコンソールで "type mismatch" というエラーをスローしますif ブロック内で等しいを使用する
{{#if (eq name 'Steven')}}
Your name is Steven.
{{else}}
Your name is not Steven.
{{/if}}
のコンテキストは { name: "Steven" }
で、 "Your name is Steven." に描画されます。
異なるヘルパーは二つの数または文字列を比較し、それらが異なるかどうかを確認します
{{ne 1 1}}
は false に描画されます{{ne [1, 2] 5}}
はコンソールで "type mismatch" というエラーをスローしますより小さいヘルパーは二つの数または文字列を比較し、最初のものが二番目のものより小さいかどうかを確認します。
{{lt 1 2}}
は true に描画されます{{lt [1, 2] 5}}
はコンソールで "type mismatch" というエラーをスローします以下ヘルパーは二つの数または文字列を比較し、最初のものが二番目のもの以下かどうかを確認します。
{{le 1 1}}
は true に描画されます{{le [1, 2] 5}}
はコンソールで "type mismatch" というエラーをスローしますより大きいヘルパーは二つの数または文字列を比較し、最初のものが二番目のものより大きいかどうかを確認します。
{{gt 2 1}}
は true に描画されます{{gt [1, 2] 5}}
はコンソールで "type mismatch" というエラーをスローします以上ヘルパーは二つの数または文字列を比較し、最初のものが二番目のもの以上かどうかを確認します。
{{ge 1 1}}
は true に描画されます{{ge [1, 2] 5}}
はコンソールで "type mismatch" というエラーをスローしますencodeURIヘルパーは与えられた文字列を JavaScript encodeURI() 関数でエンコードします。
{{encodeURI 'hello world?'}}
は "hello%20world?" に描画されます{{encodeURI variable}}
のコンテキストは { variable: [1, 2, 3] }
で、コンソールで "value must be a string" というエラーをスローしますencodeURIComponentヘルパーは与えられた文字列を JavaScript encodeURIComponent() 関数でエンコードします。
{{encodeURIComponent 'hello world?'}}
は "hello%20world%3F" に描画されます{{encodeURIComponent variable}}
のコンテキストは { variable: [1, 2, 3] }
で、コンソールで "value must be a string" というエラーをスローしますgetSelectedDisplayValueヘルパーは、与えられた値とselectedValueからdisplayValuesのselectedDisplayValueを取得します。
{{getSelectedDisplayValue values displayValues selectedValue}}
のコンテキストは { values: [1, 2, 3], displayValues: ["a", "b", "c"], selectedValue: 2 }
で、 ["b"]
を返します{{getSelectedDisplayValue values displayValues selectedValue}}
のコンテキストは { values: "hello", displayValues: ["a", "b", "c"], selectedValue: 2 }
で、コンソールで "values must be an array" というエラーをスローします{{getSelectedDisplayValue values displayValues selectedValue}}
のコンテキストは { values: [1,2,3], displayValues: ["a", "b", "c"], selectedValue: 4 }
で、コンソールで "selectedValue '4' is not in values" というエラーをスローしますgetSelectedDisplayValuesヘルパーは、与えられた値とselectedValuesからdisplayValuesのselectedDisplayValuesを取得します。
{{getSelectedDisplayValues values displayValues selectedValues}}
のコンテキストは { values: [1, 2, 3], displayValues: ["a", "b", "c"], selectedValues: [2, 3] }
で、 ["b", "c"]
を返します{{getSelectedDisplayValues values displayValues selectedValues}}
のコンテキストは { values: "hello", displayValues: ["a", "b", "c"], selectedValues: 2 }
で、コンソールで "values must be an array" というエラーをスローします{{getSelectedDisplayValues values displayValues selectedValues}}
のコンテキストは { values: [1,2,3], displayValues: ["a", "b", "c"], selectedValues: [4] }
で、コンソールで "selectedValue '4' is not in values" というエラーをスローしますlookupヘルパーは組み込みの Handlebars lookup のバリエーションを使用し、Handlebarsのドキュメンテーションで説明されているように使用できます。また、下記の例のように、Slateのlookupバリエーションではプロパティの長いチェーンを説明できます。
{{lookup a "b" "c"}}
のコンテキストは { a: { b: { c: "test" } } }
で、 "test" を返しますand
ヘルパーは、提供されたブール引数に対して AND (&&) 論理比較を実行します。少なくとも二つの引数が必要です。
{{and var1 var2}}
のコンテキストは { var1: "true", var2: "false" }
で、 "false" を描画しますor
ヘルパーは、提供されたブール引数に対して OR (||) 論理比較を実行します。少なくとも二つの引数が必要です。
{{or var1 var2}}
のコンテキストは { var1: "true", var2: "false" }
で、 "true" を描画しますnot
ヘルパーは、提供されたブール引数に対して NOT (!) 論理比較を実行します。単一の引数にのみ適用できます。
{{not var}}
のコンテキストは { var : "true" }
で、 "false" を描画しますウィジェット内で以下のウィジェットヘルパーが利用可能です。
formatNumber ヘルパーは、与えられた数値を Numeral.js ライブラリを使用して文字列にフォーマットします。値は数値であり、フォーマットは文字列である必要があります。
{{formatNumber 1400 '0,0'}}
は "1,400" にレンダリングされます
{{formatNumber 'abc' '0,0'}}
はコンソールで "value must be a number" というエラーが発生します{{formatNumber 1400 variable}}
でコンテキストが { variable: ["hello": "world"] }
の場合、コンソールで "format must be a string" というエラーが発生しますformatDate ヘルパーは、与えられた日付を Moment.js ライブラリを使用して文字列にフォーマットします。値は日付であり、フォーマットは文字列である必要があります。
{{formatDate '2014-1-2' 'MM/DD/YYYY'}}
は "01/02/2014" にレンダリングされます
{{formatDate 1237705200000 'YYYY-MM-DD'}}
は "2009-03-22" にレンダリングされます
{{formatDate 'some string' 'YYYY-MM-DD'}}
はコンソールで "value must be a valid date" というエラーが発生します{{formatDate '2014-1-2' variable}}
でコンテキストが { variable: ["hello": "world"] }
の場合、コンソールで "format must be a string" というエラーが発生します以下のヘルパーは HttpJson Foundry クエリ内で利用可能です。
joinParams ヘルパーは、パラメーターの配列を取り、シングルクォートされたパラメーターを ,
で結合します。
"SELECT * FROM `table1` WHERE name IN ({{joinParams names}})"
コンテキストが { names: ["Bill", "John J.", "Sam's", "Jay"] }
の場合、以下のようにレンダリングされます
"SELECT * FROM `table1` WHERE name IN ('Bill', 'John J.', 'Sam\'s', 'Jay')"
"SELECT * FROM table1 WHERE name IN ({{joinParams name}});"
コンテキストが { name: "Bill" }
の場合、"parameters must be an array in joinParams helper" というエラーが発生します以下の SQL ヘルパーは SQL クエリ内で利用可能です。HttpJson Foundry クエリは Spark SQL 構文を使用していることに注意してくださいが、これらのヘルパーはそれらのクエリでは使用しないでください。
alias ヘルパーは、エイリアス列またはテーブル名を取ります。column および table ヘルパーは、値を情報スキーマと照らし合わせます。ただし、一時的な列名やテーブル名はスキーマに存在しません。alias ヘルパーは、ユーザーが一時的な列名やテーブル名を登録する方法を提供します。名前が定数値でない場合、エラーが発生します。
エイリアス列名を登録するために alias を使用する
"SELECT id as {{alias 'alias_column_name'}} FROM table1 ORDER BY {{column aliasColumnName}};"
コンテキストが { aliasColumnName: "alias_column_name" }
の場合、以下のようにレンダリングされます
"SELECT id as alias_column_name FROM table1 ORDER BY alias_column_name;"
大文字と小文字を区別するエイリアス列名を登録するために alias を使用する
"SELECT id as "{{alias 'Alias Column Name'}}" FROM table1 ORDER BY "{{column aliasColumnName}}";"
コンテキストが { aliasColumnName: "Alias Column Name" }
の場合、以下のようにレンダリングされます
"SELECT id as "Alias Column Name" FROM table1 ORDER BY "Alias Column Name";"
エイリアステーブル名を登録するために alias を使用する
"SELECT id as "{{alias 'Alias Column Name'}}" FROM table1 ORDER BY "{{column aliasColumnName}}";"
コンテキストが { aliasColumnName: "Alias Column Name" }
の場合、以下のようにレンダリングされます
"SELECT id as "Alias Column Name" FROM table1 ORDER BY "Alias Column Name";"
定数でない値で alias を使用する場合:
"SELECT id as {{alias aliasColumnName}} FROM table1 ORDER BY {{table aliasColumnName}};"
コンテキストが { aliasColumnName: "alias_column_name" }
の場合、"Only constant parameters are not allowed..." というエラーが発生します
schema ヘルパーは、スキーマ名とホワイトリスト名のリストを取ります。スキーマ名がホワイトリスト名のリストに含まれていることを確認し、スキーマ名をデータソースの情報テーブルと照らし合わせます。スキーマ名がホワイトリスト名のリストまたは情報テーブルに存在しない場合、エラーが発生します。
"SELECT * FROM {{schema schemaName 'schema1' 'schema2'}}.table1;"
コンテキストが { schemaName: "schema1" }
の場合、以下のようにレンダリングされます
"SELECT * FROM schema1.table1;"
"SELECT * FROM {{schema schemaName 'schema1' 'schema2'}}.table1;"
コンテキストが { schemaName: "schemaNameNotInList" }
の場合、以下のようにレンダリングされます
"SELECT FROM schemaNameNotInList.table1"
実行時に "schema name must be in the list of the whitelist names." というエラーが発生します。"SELECT * FROM {{schema schemaName 'schema1' 'schema2' templatizedName}}.table1;"
コンテキストが { schemaName: "schema1", templatizedName: "anotherSchemaName" }
の場合、以下のようにレンダリングされます
"SELECT * FROM schema1.table1;"
実行時に "References ['templatizedName'] cannot be dynamic for security reasons." というエラーが発生します。"SELECT * FROM {{schema schemaName 'invalidSchema1'}}.table1;"
コンテキストが { schemaName: "invalidSchema1" }
の場合、以下のようにレンダリングされます
"SELECT * FROM invalidSchema1.table1;"
実行時に "Invalid schema name 'invalidSchema1.'" というエラーが発生します。table ヘルパーは、テーブル名とホワイトリスト名のリストを受け取ります。テーブル名がホワイトリスト名のリストに含まれていることを確認し、テーブル名をデータソースの情報テーブルと照らし合わせます。テーブル名がホワイトリスト名のリストや情報テーブルに存在しない場合、エラーが発生します。
"SELECT * FROM {{table tableName 'table1' 'table2'}};"
コンテキストが { tableName: "table1" }
の場合、次のようにレンダリングされます。
"SELECT * FROM table1;"
"SELECT * FROM {{table tableName 'table1' 'table2'}};"
コンテキストが { tableName: "tableNameNotInList" }
の場合、次のようにレンダリングされます。
"SELECT * FROM tableNameNotInList;"
そして、実行時に "table name must be in the list of the whitelist names." というエラーがスローされます。"SELECT * FROM {{table tableName 'table1' 'table2' templatizedName}};"
コンテキストが { tableName: "table1", templatizedName: "anotherTableName" }
の場合、次のようにレンダリングされます。
"SELECT * FROM table1;"
そして、実行時に "References ['templatizedName'] cannot be dynamic for security reasons." というエラーがスローされます。"SELECT * FROM {{table tableName 'invalidTable1'}};"
コンテキストが { tableName: "invalidTable1" }
の場合、次のようにレンダリングされます。
"SELECT * FROM invalidTable1;"
そして、実行時に "Invalid table name 'invalidTable1'." というエラーがスローされます。column ヘルパーは、列名、または列名のリストを受け取り、データソースの情報テーブルと照らし合わせます。列名が情報テーブルに存在しない場合、エラーが発生します。
"SELECT {{column columnName}} FROM table1;"
コンテキストが { columnName: "column1" }
の場合、次のようにレンダリングされます。
"SELECT 行1 FROM table1;"
"SELECT "{{column columnName}}" FROM table1;"
コンテキストが { columnName: "Column 1" }
の場合、"SELECT "Column 1" FROM table1;" にレンダリングされます。"SELECT {{column columnNames}} FROM table1;"
コンテキストが { columnNames: ["column1", "column2"] }
の場合、次のようにレンダリングされます。
"SELECT 行1, 行2 FROM table1;"
"SELECT {{column columnName}} FROM table1;"
コンテキストが { columnName: "invalidColumn1" }
の場合、次のようにレンダリングされます。
"SELECT invalidColumn1 FROM table1;"
そして、"Invalid column name 'invalidColumn1'." というエラーがスローされます。param ヘルパーは、パラメーターまたはパラメーターのリストを受け取ります。通常モードでは、パラメーターをリストに格納し、疑問符を返します。プレビューモードでは、パラメーターを返します。注:プレビューモードは、レンダリングされたクエリをプレビューし、デバッグするために使用されます。
"SELECT * FROM table1 WHERE id = {{param parameter1}};"
コンテキストが { parameter1: 1234 }
の場合、次のようにレンダリングされます。
"SELECT * FROM table1 WHERE id = ?;"
パラメーターのリストは [1234]
です。"SELECT * FROM table1 WHERE text IN ({{param parameter1}});"
コンテキストが { parameter1: ["some", "text"] }
の場合、次のようにレンダリングされます。
"SELECT * FROM table1 WHERE text IN (?, ?);"
パラメーターのリストは ["some", "text"]
です。"SELECT * FROM table1 WHERE text = {{param (toString parameter1)}};"
コンテキストが { parameter1: 1234 }
の場合、次のようにレンダリングされます。
"SELECT * FROM table1 WHERE text = ?;"
パラメーターのリストは ["1234"]
です。"SELECT * FROM table1 WHERE text = {{param (toNumber parameter1)}};"
コンテキストが { parameter1: "1234" }
の場合、次のようにレンダリングされます。
"SELECT * FROM table1 WHERE text = ?;"
パラメーターのリストは [1234]
です。"SELECT * FROM table1 WHERE text LIKE {{param (concat '%' parameter1 '%')}};"
コンテキストが { parameter1: "some text" }
の場合、次のようにレンダリングされます。
"SELECT * FROM table1 WHERE text = ?;"
パラメーターのリストは ["%some text%"]
です。"SELECT * FROM table1 WHERE id = {{param parameter1}};"
コンテキストが { parameter1: 1234 }
の場合、次のようにレンダリングされます。
"SELECT * FROM table1 WHERE id = 1234;"
"SELECT * FROM table1 WHERE text IN ({{param parameter1}});"
コンテキストが { parameter1: ["some", "text"] }
の場合、次のようにレンダリングされます。
"SELECT * FROM table1 WHERE text IN ('some', 'text');"
"SELECT * FROM table1 WHERE id = {{param parameter1}};"
コンテキストが { }
の場合、"Error: parameter value cannot be null in param helper" というエラーがスローされます。"SELECT * FROM table1 WHERE text IN ({{param parameter1}});"
コンテキストが { parameter: ["some", null] }
の場合、"Error: parameter array cannot have null value in param helper" というエラーがスローされます。