Handlebars.js:使用部分像普通的完整模板一样

我有一个模板,我想将其用作部分,并且本身来自javascript。

如果您的模板已预编译,您可以通过Handlebars.partials['partial-name']()访问您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'));

希望这能帮助任何想要像我一样使用Handlebars的人。

反过来说更容易 – 将所有模板编译为普通模板,然后将它们作为部分模板使用:

 Handlebars.partials = Handlebars.templates 

这样就可以像往常一样使用模板,也可以使用部分模板:

 {{> normalTemplate}} 

要从javascript渲染部分,您可以使用

 Handlebars.partials["myPartial"]() 

要使用模板中的部分内容,只需添加{{> partialName}}