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

Chr*_*wes 17 javascript mustache

有没有办法(不修改胡子的来源)禁用HTML转义?我正在使用胡子做其他事情,不想让以下实体转义.

var entityMap = {
  "&": "&",
  "<": "&lt;",
  ">": "&gt;",
  '"': '&quot;',
  "'": '&#39;',
  "/": '&#x2F;'
};
Run Code Online (Sandbox Code Playgroud)

给出一个类似的模板foo '{{bar}}',一个视图{ bar : 1 }将产生foo &#39;1&#39.

And*_*wby 40

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

按照:

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

所以,如果你有一个字符串,包括:

test => Q&A

致电:

{{ test }}
Run Code Online (Sandbox Code Playgroud)

会给你:

Q &amp; A
Run Code Online (Sandbox Code Playgroud)

..但打电话:

{{{ test }}} or {{ &test }}
Run Code Online (Sandbox Code Playgroud)

会给你一个:

q & a
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回复,但这不是占位符.我的问题是它也逃脱了整个模板. (3认同)

Chr*_*wes 29

它实际上非常简单,mustache提供了escape被覆盖的功能.以下行禁用了胡子模板的转义.

mustache.escape = function (value)
{
    return value;
};
Run Code Online (Sandbox Code Playgroud)