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}}
。