在Mustache JS中包含部分内容

Sim*_*old 4 javascript mustache

我有一个html模板var template和一个对象var obj.
我在这样的Javascript中调用我的模板.

var html = Mustache.render(template, obj, {
  templateRef: "path/template"
});
Run Code Online (Sandbox Code Playgroud)

如果我是console.log html,原始模板会完美显示,但部分(templateRef)部分根本不会呈现.

在我的模板中,我有一个像这样的部分引用:

{{> templateRef}}
Run Code Online (Sandbox Code Playgroud)

我试图将部分放在同一级别(删除路径),包括扩展名(.mustache)等.但似乎没有任何工作.

任何人都知道我错过了什么?

kce*_*ent 6

编辑与 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);
Run Code Online (Sandbox Code Playgroud)

JsFiddle:http : //jsfiddle.net/LUvpM/
参考:http : //coenraets.org/blog/2011/12/tutorial-html-templates-with-mustache-js/


Jon*_*ski 5

Mustache.js似乎不支持通过其路径指定partial:

该对象应该由partial的名称键入,其值应该是部分文本.

您必须检索模板的文本并将其提供给Mustache.render()(例如,使用jQuery):

$.get('path/template.mustache', function (partialTemplate) {

  var html = Mustache.render(template, obj, {
    templateRef: partialTemplate
  });

  // ...

}, 'text');
Run Code Online (Sandbox Code Playgroud)