Mustache模板字符串内部呈现为HTML

问题描述 投票:57回答:2

我正在使用Moustache渲染模板。

我有这个json对象:

  {
    title: "Foo bar", 
    content: "<p> Html here </p>", 
    footer: "footer content here"
  }

我有一个小胡子模板,如:

  <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);作为我呼唤小胡子的电话。

javascript jquery html mustache
2个回答
130
投票
Mustache documentation

默认情况下,所有变量都是HTML转义的。如果你想回来未经转义的HTML,请使用三重胡须:{{{name}}}。

所以您只需要在模板中使用例如{{{content}}}

<div id="box"> <div id="title"> {{title}} </div> <div id="content"> {{{content}}} </div> <div id="footer"> {{footer}} </div> </div>


0
投票
您可以使用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文件。就是这样。
© www.soinside.com 2019 - 2024. All rights reserved.