Handlebars学习(2)- HTML转义

Handlebars中通过{{expression}}返回HTML转义值。如果你不想Handlebars转义(不是解析,三个大括号中的变量依旧会被解释)一个值,可以使用三个大括号:{{{

  <div class="entry">
    <h1>{{title}}</h1>
    <div class="body">
      {{{body}}}
    </div>
  </div>

相应上下文:

  {
    title: "All about <p> Tags",
    body: "<p>This is a post about &lt;p&gt; tags</p>"
}

结果输出:

  <div class="entry">
    <h1>All About &lt;p&gt; Tags</h1>
<div class="body">
<p>This is a post about &lt;p&gt; tags</p>
</div>
</div>

Handlebars不会转义一个Handlebars.SafeString。如果你写了一个产生它自己HTML的helper,通常你想要返回一个new Handlebars.SafeString(result),在这个环境中,你应该手动的转义参数。

  Handlebars.registerHelper('link', function(text, url) {
    text = Handlebars.Utils.escapeExpression(text);
    url  = Handlebars.Utils.escapeExpression(url);

    var result = '<a href="' + url + '">' + text + '</a>';
  return new Handlebars.SafeString(result); });

这将会转义传入的参数,但是安全的标记返回值,所以Handlebars将不会尽力转义它,尽管没有使用{{{的形式。

posted @ 2014-12-18 17:04  South Wind  Views(559)  Comments(0)    收藏  举报