小胡子:全局禁用html转义?

时间:2014-04-07 10:57:51

标签: javascript mustache

有没有办法(不修改胡须来源)禁用HTML转义?我使用小胡子做其他事情,不想让以下实体逃脱。

var entityMap = {
  "&": "&",
  "<": "&lt;",
  ">": "&gt;",
  '"': '&quot;',
  "'": '&#39;',
  "/": '&#x2F;'
};

给定foo '{{bar}}'之类的模板,视图{ bar : 1 }将生成foo &#39;1&#39

2 个答案:

答案 0 :(得分:36)

如果您尝试的不是HTML转义某些字符串,则只需 {{{xx}}} 而不是 {{xx}}

按照:

http://mustache.github.io/mustache.5.html

所以如果你有一个由以下字符串组成的字符串:

test =&gt; Q&amp;甲

致电:

{{ test }}

会给你:

Q &amp; A

..但是打电话给:

{{{ test }}} or {{ &test }}

只会给你:

q & a

答案 1 :(得分:26)

实际上非常简单,mustache提供要覆盖的escape函数。以下行禁用了胡子模板的转义。

mustache.escape = function (value)
{
    return value;
};