# パーシャル
Handlebarsは、パーシャルによるテンプレートの再利用を可能にします。パーシャルは、他のテンプレートから直接呼び出すことができる通常のHandlebarsテンプレートです。
# 基本的なパーシャル
パーシャルを使用するには、`Handlebars.registerPartial` を介して登録する必要があります。
この呼び出しは、 `myPartial` パーシャルを登録します。パーシャルは事前にコンパイルすることができ、コンパイルされたテンプレートは2番目のパラメータに渡されます。
パーシャルの呼び出しは、パーシャル呼び出し構文を介して行われます。
`myPartial` という名前のパーシャルをレンダリングします。パーシャルが実行されると、現在の 実行コンテキスト で実行されます。
# 動的パーシャル
部分式構文を使用して、実行するパーシャルを動的に選択できます。
`whichPartial` を評価し、この式によって返された名前のパーシャルをレンダリングします。
部分式は変数を解決しないため、`whichPartial` は関数でなければなりません。単純な変数にパーシャル名が含まれている場合は、`lookup` ヘルパーを使用して解決できます。
# パーシャルコンテキスト
パーシャル呼び出しにコンテキストを渡すことで、カスタムコンテキストでパーシャルを実行できます。
# パーシャルパラメータ
カスタムデータは、ハッシュパラメータを介してパーシャルに渡すことができます。
パーシャルの実行時に、パラメータを `value` に設定します。
これは、親コンテキストからパーシャルにデータを公開する場合に特に役立ちます。
# 部分ブロック
見つからないパーシャルをレンダリングしようとすると、通常は実装がエラーをスローします。代わりにフェイルオーバーが必要な場合は、ブロック構文を使用してパーシャルを呼び出すことができます。
これは、`myPartial` パーシャルが登録されていない場合に `Failover content` をレンダリングします。
このブロック構文は、テンプレートをパーシャルに渡すためにも使用できます。テンプレートは、`@partial-block` という特別な名前のパーシャルによって実行されます。例えば、以下のテンプレートがあるとします。
そして、`layout` パーシャルに以下の内容が含まれているとします。
これは以下のようにレンダリングされます。
この方法で呼び出されると、ブロックは呼び出し時のパーシャルのコンテキストで実行されます。深度パスとブロックパラメータは、パーシャルテンプレートではなく、パーシャルブロックに対して相対的に動作します。
これは、パーシャルではなく、このテンプレートから `person.firstname` をレンダリングします。
# インラインパーシャル
テンプレートは、`inline` デコレータを使用してブロックスコープのパーシャルを定義できます。
これは、それぞれの子に対して `myPartial` パーシャルをレンダリングします。
各インラインパーシャルは、現在のブロックとすべての子で使用でき、他のパーシャルの実行も含まれます。これにより、レイアウトテンプレートや同様の機能が可能になります。
layout
パーシャルが配置される場所