我在var template
中有一个html模板,在var obj
中有一个对象
我在 Javascript 中调用我的模板。
var html = Mustache.render(template, obj, {
templateRef: "path/template"
});
如果我是console.log html
,原始模板会完美显示,但部分(templateRef)部分根本不会呈现。
在我的模板中,我有一个像这样的部分引用:
{{> templateRef}}
我试图将部分放在同一级别(删除路径),包括扩展名(。mustache)等等。但似乎没有任何效果。
任何人都知道我错过了什么?
答案 0 :(得分:5)
Mustache.js似乎不支持specifying a partial by its path:
对象应使用partial的名称键入,其值应为部分文本。
您必须检索模板的文本并将其提供给Mustache.render()
(例如,使用jQuery):
$.get('path/template.mustache', function (partialTemplate) {
var html = Mustache.render(template, obj, {
templateRef: partialTemplate
});
// ...
}, 'text');
答案 1 :(得分:3)
编辑与MustacheJS相关的答案(不是把手 - 我的错误)。您应该能够将Partial模板传递到主模板,如下所示:
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);
JsFiddle:http://jsfiddle.net/LUvpM/
参考:http://coenraets.org/blog/2011/12/tutorial-html-templates-with-mustache-js/