我正在使用Mustache来渲染模板。
我有这个json对象:
{
title: "Foo bar",
content: "<p> Html here </p>",
footer: "footer content here"
}
我有一个Mustache模板,如:
<div id="box">
<div id="title"> {{title}} </div>
<div id="content"> {{content}} </div>
<div id="footer"> {{footer}} </div>
</div>
我的问题是变量内容中的html没有被渲染,而只是被打印到屏幕上。
我看到(在非查看源窗口中):<p> Html here </p>
,我只想查看页面源代码。
我如何解决这个问题,当我将字符串传递给小胡子模板时,HTML内部会被渲染?我在调用mustache.render(templates.all,data);我打电话给小胡子。
答案 0 :(得分:118)
默认情况下,所有变量都是HTML转义的。如果你想回来 未转义的HTML,请使用三重胡须:{{{name}}}。
所以你只需要在模板中使用eg。{{{content}}}
:
<div id="box">
<div id="title"> {{title}} </div>
<div id="content"> {{{content}}} </div>
<div id="footer"> {{footer}} </div>
</div>
答案 1 :(得分:-2)
您可以使用Java代码轻松呈现。
Map<String,String> vars =new HashMap<>();
vars.put("title","Foo bar");
vars.put("content","Html here");
vars.put("footer","footer");
String renderedString = Mustache.compiler().compile(yourBodyTemplate()).execute(vars);
将渲染的字符串写入html文件。就是这样。