# (プリ-)コンパイル
# Handlebars.compile(template, options)
テンプレートをコンパイルして、すぐに実行できるようにします。
const template = Handlebars.compile("{{foo}}");
template({});
テンプレートの実行方法を変更するさまざまなオプションをサポートしています。
data
:@data
トラッキングを無効にするにはfalseに設定します。compat
: 再帰的なフィールドルックアップを有効にするにはtrueに設定します。knownHelpers
: テンプレート実行時に存在することがわかっているヘルパーのリストを含むハッシュ。これにより、コンパイラは多くのケースを最適化できます。組み込みヘルパーは自動的にこのリストに含まれ、その値をfalse
に設定することで省略できます。knownHelpersOnly
: 既知のヘルパーリストに基づいてさらに最適化を許可するにはtrueに設定します。noEscape
: コンテンツをHTMLエスケープしないようにするにはtrueに設定します。strict
: 厳格モードで実行します。このモードでは、テンプレートはフィールドが見つからない場合に無視するのではなく、エラーをスローします。これは、フィールドがソースオブジェクトに明示的に含まれていない限り、{{^foo}}{{/foo}}
などの逆演算が無効になるという副作用があります。assumeObjects
: パスをトラバースするときのオブジェクトの存在チェックを削除します。これは、データ入力が安全であることがわかっている場合に最適化されたテンプレートを生成するstrict
モードのサブセットです。preventIndent
: デフォルトでは、インデントされた部分呼び出しにより、部分全体の出力は同じ量だけインデントされます。これは、部分がpre
タグを出力する場合に予期しない動作につながる可能性があります。このオプションをtrue
に設定すると、自動インデント機能が無効になります。ignoreStandalone
:true
に設定すると、スタンドアロンタグの削除が無効になります。設定されている場合、独自の行にあるブロックとパーシャルは、その行の空白を削除しません。explicitPartialContext
: パーシャルの暗黙のコンテキストを無効にします。有効にすると、コンテキスト値が渡されていないパーシャルは空のオブジェクトに対して実行されます。
# Handlebars.precompile(template, options)
クライアントに送信してコンパイルせずに実行できるよう、指定されたテンプレートをプリコンパイルします。
var templateSpec = Handlebars.precompile("{{foo}}");
Handlebars.compile
メソッドと同じオプションパラメーターをすべてサポートしています。さらに、以下を渡すことができます。
srcName
: 入力ファイルのソースマップを生成するために渡されます。このように実行されると、戻り値の構造は{code, map}
になり、code
にはテンプレート定義が含まれ、map
にはソースマップが含まれます。destName
: ソースマップを生成するときに宛先ファイル名を指定するために、srcName
と組み合わせて使用されるオプションパラメーターです。
# Handlebars.template(templateSpec)
Handlebars.precompile
でプリコンパイルされたテンプレートを設定します。
var template = Handlebars.template(templateSpec);
template({});
← インデックス ランタイムオプション →