52 votes

Guidon Modèle de rendu modèle en texte

J'ai créé un helper dans le Guidon pour aider avec la logique, mais mon modèle d'analyse le code html renvoyé comme texte plutôt que html.

J'ai un quiz page de résultats est affichée après le jeu est terminé:

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

Pour chacun des tours, j'ai utiliser une aide à déterminer le modèle pour rendre un tour du résultat:

  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");
    }
  });

Voici un modèle qui décrit un tour correct (prenons dire elle a rendu la #bout rond-modèle correct):

  <script id="round-end-correct" type="text/x-handlebars-template">
        <div></div>
  </script>

Voici ce qui est affiché:

<div></div>

Pas en HTML, mais en tant que texte. Comment dois-je faire pour afficher le code HTML HTML, plutôt que du texte?

148voto

Geert-Jan Points 5452

Je présume que décoller dans le guidon fonctionne de la même manière que dans Moustache à la vanille. Dans ce cas, utilisez les triple moustaches pour libérer le code html, i, e: {{{unescapedhtml}}} , comme:

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

pour référence voir: http://mustache.github.com/mustache.5.html

19voto

Peter Pajchl Points 1688

Les réponses de Geert-Jan sont correctes, mais juste pour référence, vous pouvez également définir le résultat sur "safe" directement dans l'aide (code du wiki handlebars.js)

 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); 
});
 

Avec cela, vous pouvez utiliser un double guidon régulier {{}} et le guidon n'échappera pas à votre expression.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X