# ユーティリティ関数
# ヘルパーユーティリティ
これらのメソッドは、カスタムヘルパーを実装する際に役立ちます。
# Handlebars.SafeString(string)
テンプレートがレンダリングされる際に、string
がエスケープされるのを防ぎます。
new Handlebars.SafeString("<div>HTML Content!</div>");
安全としてマークされる文字列を構築する際には、潜在的なセキュリティ上の懸念を避けるために、Handlebars.escapeExpression
メソッドを使用して、外部コンテンツを適切にエスケープする必要があります。
# Handlebars.escapeExpression(string)
渡された文字列をHTMLエスケープし、HTMLコンテンツ内のテキストとして安全にレンダリングできるようにします。
Handlebars.Utils.escapeExpression(string);
文字列値に対して、&
、<
、>
、"
、'
、`
、=
をHTMLエンティティの等価値に置き換えます。 SafeString
値は変更されません。
三重中括弧式を除くすべての式の出力はこのメソッドに渡されます。ヘルパーは、SafeString
インスタンスを介してHTMLコンテンツを返す場合にも、コードインジェクションの可能性を防ぐために、このメソッドを使用する必要があります。
このメソッドは、Handlebars.Utils.escapeExpression
のエイリアスです。
# Handlebars.createFrame(data)
ブロックヘルパーが子データオブジェクトを作成するために使用します。
if (options.data) {
var data = Handlebars.createFrame(options.data);
data.foo = "bar";
options.data = data;
}
データの状態を変更するヘルパーは、そうする際に新しいフレームを作成して、自身を分離し、親の状態を破損しないようにする必要があります。一般に、ヘルパーの実行ごとに作成する必要があるフレームは1つだけです。たとえば、each
反復子は、すべての子実行で再利用される単一のフレームを作成します。
# 汎用ユーティリティ
Handlebarsは、Handlebars.Utils
オブジェクトを介して公開されるさまざまなユーティリティメソッドを提供します。
# Handlebars.Utils.isEmpty(value)
指定された値が空かどうかを判断します。
Handlebars.Utils.isEmpty(value)
これは、組み込みのif
およびwith
ヘルパーによって、実行フローを制御するために使用されます。Handlebarsの空の定義は、次のいずれかです。
- 長さ0の配列
- 0以外の偽の値
これは、Mustacheの動作 (新しいウィンドウが開きます)と一致することを目的としています。
# Handlebars.Utils.extend(obj, value)
value
で定義されているすべてのキーでobj
を補強するための簡単なユーティリティメソッドです。
Handlebars.Utils.extend(foo, {bar: true})
オブジェクトfoo
のキーbar
を値true
に設定します。
# Handlebars.Utils.toString(obj)
汎用のtoString
メソッドです。
# Handlebars.Utils.isArray(obj)
オブジェクトが配列かどうかを判断します。
# Handlebars.Utils.isFunction(obj)
オブジェクトが関数かどうかを判断します。
# Handlebars.log(level, message)
log
ヘルパーで使用されるロガーです。
必要に応じてオーバーライドできます。