我有一个模板,我既想将其用作部分模板,也想单独使用 javascript。
问问题
22576 次
4 回答
25
如果您的模板是预编译的,您可以通过帮助程序访问您的部分,也可以Handlebars.partials['partial-name']()
从模板中调用它们{{> partial}}
。
这很好,因为您可以编写一个实用函数来渲染模板,无论它是完整模板还是部分模板。
前任:
function elementFromTemplate(template, context) {
context = context || {};
var temp = document.createElement('div');
temp.innerHTML = templates[template] ? templates[template](context) : Handlebars.partials[template](context);
return temp.firstChild;
}
myDiv.appendChild(elementFromTemplate('myPartial', context));
myDiv.appendChild(elementFromTemplate('a-whole-template'));
希望这可以帮助任何想像我一样使用把手的人。
于 2013-08-20T06:03:15.547 回答
15
反过来更容易 - 将所有模板编译为普通模板,然后将它们作为部分可用:
Handlebars.partials = Handlebars.templates
这使得可以像往常一样使用您的模板,也可以作为部分模板使用:
{{> normalTemplate}}
于 2014-01-16T21:37:03.200 回答
5
要从 javascript 呈现部分内容,您可以使用
Handlebars.partials["myPartial"]()
于 2014-02-24T15:52:16.397 回答
2
要使用模板中的部分内容,只需包含{{> 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>
于 2013-08-19T04:47:40.870 回答