私はパーシャルとしても、JavaScript自体からも使用したいテンプレートを持っています。
すべてのテンプレートを通常のテンプレートとしてコンパイルしてから、それらをパーシャルとして利用できるようにすることで、逆の方法で実行する方が簡単です。
Handlebars.partials = Handlebars.templates
これにより、テンプレートを通常どおり、また部分テンプレートとしても使用できるようになります。
{{> normalTemplate}}
JavaScriptからパーシャルをレンダリングするには、次を使用できます
Handlebars.partials["myPartial"]()
テンプレートからパーシャルを使用するには、{{> partialName}}
を含めるだけです。
<script id="base-template" type="text/x-handlebars-template">
<div>
{{> person}} <!-- This is the partial template name -->
</div>
</script>
<script id="partial-template" type="text/x-handlebars-template">
<div class="person">
<h2>{{first_name}} {{last_name}}</h2>
<div class="phone">{{phone}}</div>
</div>
</script>
<script type="text/javascript">
$(document).ready(function() {
var template = Handlebars.compile($("#base-template").html());
//Aliasing the template to "person"
Handlebars.registerPartial("person", $("#partial-template").html());
template(yourData);
}
</script>