Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 把手模板将模板渲染为文本_Javascript_Template Engine_Mustache_Handlebars.js - Fatal编程技术网

Javascript 把手模板将模板渲染为文本

Javascript 把手模板将模板渲染为文本,javascript,template-engine,mustache,handlebars.js,Javascript,Template Engine,Mustache,Handlebars.js,我在Handlebar中创建了一个帮助器来帮助处理逻辑,但是我的模板将返回的html解析为文本而不是html 我有一个测验结果页面,该页面在测验完成后呈现: <script id="quiz-result" type="text/x-handlebars-template"> {{#each rounds}} {{round_end_result}} {{/each}} <div class="clear"

我在Handlebar中创建了一个帮助器来帮助处理逻辑,但是我的模板将返回的html解析为文本而不是html

我有一个测验结果页面,该页面在测验完成后呈现:

  <script id="quiz-result" type="text/x-handlebars-template">
        {{#each rounds}}
          {{round_end_result}}
        {{/each}}
        <div class="clear"></div>
  </script>
下面是一个描述正确回合的模板(假设它呈现了#回合结束正确模板):


下面是渲染的内容:

<div></div>


不是HTML,而是文本。我如何让它真正将HTML呈现为HTML,而不是文本?

我假设在车把中不逃避与在香草胡子中一样有效。 在这种情况下,请使用三重胡须来取消对html的浏览,即:
{{{{unescapedhtml}}
,如:

<script id="quiz-result" type="text/x-handlebars-template">
    {{#each rounds}}
      {{{round_end_result}}}
    {{/each}}
    <div class="clear"></div>

{{#每轮}
{{{round_end_result}}}
{{/每个}}

有关ref,请参见:

Geert Jan的答案是正确的,但仅供参考,您也可以直接在帮助器中将结果设置为“安全”(代码来自handlebar.js wiki)

handlebar.registerHelper('foo',函数(文本,url){
text=handlebar.Utils.escapeeexpression(text);
url=handlebar.Utils.escapeeexpression(url);
var结果=“”;
返回新把手。安全字符串(结果);
});

有了它,您可以使用常规的双把手{{},而把手将不会逃逸您的表达式。

当使用带有2个参数的registerBoundHelper时,此方法不适用于我。但是“归还新的车把。安全绳(结果);”对我来说很有效。
<div></div>
<script id="quiz-result" type="text/x-handlebars-template">
    {{#each rounds}}
      {{{round_end_result}}}
    {{/each}}
    <div class="clear"></div>
Handlebars.registerHelper('foo', 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); 
});