如何使用 handlebar js 在 laravel 4.2 中转义 html?

How to escaping html in laravel 4.2 with handlebar js?

这是我在 laravel blade 中的 html 代码。

<script id="expressions-template" type="text/x-handlebars-template">
   @{{description.escaped}}
   @{{example}}

   @{{description.unescaped}}
   @{{{example}}}

</script>

<div class="content-placeholder"></div>

这是我用数据编译模板的js脚本

$(function () {
 // Grab the template script
 var theTemplateScript = $("#expressions-template").html();

 // Compile the template
 var theTemplate = Handlebars.compile(theTemplateScript);

 // Define our data object
 var context={
   "description": {
      "escaped": "Using {{}} brackets will result in escaped HTML:",
      "unescaped": "Using {{{}}} will leave the context as it is:"
      },
   "example": "<button> Hello </button>"
   };

 // Pass our data to the template
 var theCompiledHtml = theTemplate(context);

 // Add the compiled html to the page
  $('.content-placeholder').html(theCompiledHtml);

 });

laravel (4.2) blade 不会转义 html 标签,它只是将 html 标签打印为文本。

Blade::setEscapedContentTags('[[', ']]');
Blade::setContentTags('[[[', ']]]');

对单个视图使用不同的标签,您可以在将生成视图的闭包或控制器操作中设置标签。

对车把模板使用大括号。