小胡子模板字符串内部渲染为HTML

Mustache template string inside render as HTML

本文关键字:HTML 内部 字符串 小胡子      更新时间:2023-09-26

我使用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(template .all,data);正如我对小胡子的呼唤。

来自Mustache文档:

所有变量默认都是HTML转义的。如果你想回来未转义的HTML,使用三个小胡子:{{{name}}}。

所以你只需要使用eg。模板中的{{{content}}}:

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