首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Handlebar模板将模板呈现为文本

Handlebar模板将模板呈现为文本
EN

Stack Overflow用户
提问于 2011-08-24 06:50:08
回答 2查看 45.4K关注 0票数 52

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

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

代码语言:javascript
复制
  <script id="quiz-result" type="text/x-handlebars-template">
        {{#each rounds}}
          {{round_end_result}}
        {{/each}}
        <div class="clear"></div>
  </script>

对于每一轮,我使用一个helper来确定哪个模板来呈现一轮的结果:

代码语言:javascript
复制
  Handlebars.registerHelper("round_end_result", function() {
    if (this.correct) {
      var source = '';
      if (this.guess == this.correct) {
        console.log("correct guess");
        var source = $("#round-end-correct").html();
      } else {
        var source = $("#round-end-wrong").html();
      }
      var template = Handlebars.compile(source);
      var context = this;
      var html = template(context);
      console.log(html);
      return html;
    } else {
      console.log("tie");
    }
  });

下面是一个模板,它描述了一个正确的轮(假设它呈现了# round -end-round模板):

代码语言:javascript
复制
  <script id="round-end-correct" type="text/x-handlebars-template">
        <div></div>
  </script>

下面是所呈现的内容:

代码语言:javascript
复制
<div></div>

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-24 17:25:40

我假设在把手中取消转义和在香草胡须中是一样的。在这种情况下,使用三个八字胡对html进行非转义,例如:{{{unescapedhtml}}},如下所示:

代码语言:javascript
复制
<script id="quiz-result" type="text/x-handlebars-template">
    {{#each rounds}}
      {{{round_end_result}}}
    {{/each}}
    <div class="clear"></div>

有关参考资料请参阅:http://mustache.github.com/mustache.5.html

票数 149
EN

Stack Overflow用户

发布于 2012-05-01 06:13:53

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

代码语言:javascript
复制
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); 
});

这样你就可以使用常规的双手把{{ }},而把手不会转义你的表达式。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7168469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档