Javascript 在Mustache JS中包含一部分
我在Javascript 在Mustache JS中包含一部分,javascript,mustache,Javascript,Mustache,我在var模板中有一个html模板,在var obj中有一个对象 我在Javascript中调用我的模板,如下所示 var html = Mustache.render(template, obj, { templateRef: "path/template" }); 如果I console.loghtml,原始模板将完美显示,但部分(templateRef)部分根本不会呈现。 在我的模板中,我有一个对部分的引用,如下所示: {{> templateRef}} 我试图将该部分放在同
var模板
中有一个html模板,在var obj
中有一个对象
我在Javascript中调用我的模板,如下所示
var html = Mustache.render(template, obj, {
templateRef: "path/template"
});
如果I console.loghtml
,原始模板将完美显示,但部分(templateRef)部分根本不会呈现。在我的模板中,我有一个对部分的引用,如下所示:
{{> templateRef}}
我试图将该部分放在同一级别(删除路径)、包括扩展名(.mustache)等,但似乎没有任何效果。有人知道我遗漏了什么吗?编辑答案,与胡子有关(不是把手-我的错误)。您应该能够将部分模板传递到主模板中,如下所示:
var data = {
firstName: "Christophe",
lastName: "Coenraets",
address: "1 Main street",
city: "Boston",
state: "MA",
zip: "02106"
};
var template = "<h1>{{firstName}} {{lastName}}</h1>{{>address}}";
var partials = {address: "<p>{{address}}</p>{{city}}, {{state}} {{zip}}"};
var html = Mustache.to_html(template, data, partials);
$('#sampleArea').html(html);
var数据={
名字:“克里斯托弗”,
姓氏:“科恩雷茨”,
地址:“主街1号”,
城市:“波士顿”,
声明:“马”,
邮政编码:“02106”
};
var template=“{{firstName}}{{lastName}}{{>address}}”;
var partials={address:“{{address}{{city},{{state}}{{zip}}”;
var html=Mustache.to_html(模板、数据、部分);
$('#sampleArea').html(html);
JsFiddle:参考资料:Mustache.js似乎不支持: 对象应使用分部名称设置关键帧,其值应为分部文本 您必须检索模板的文本并将其提供给
Mustache.render()
(例如,使用jQuery):
哦,车把胡子的讽刺。更新了我关于胡子的答案-抱歉,谢谢你的关注!我想我脑子里有个把手:)我喜欢你的例子,谢谢,但是如果模板和部分模板都是外部的呢?如果你将模板存储在像
标记这样的东西中,你可以使用jquery使用$(“#模板名称”).html()收集内容。如果它们存储在一个文件中,考虑预编译您的模板,并通过编译一个JS文件来引用它们。做一些快速搜索,我发现最好的是hogan.js的Mustache(考虑切换到handlebar来实现这个功能。谢谢,当我检索模板的文本时,一切都很好!
$.get('path/template.mustache', function (partialTemplate) {
var html = Mustache.render(template, obj, {
templateRef: partialTemplate
});
// ...
}, 'text');