web-dev-qa-db-fra.com

Chaîne de modèle de moustache à l'intérieur du rendu au format HTML

J'utilise Moustache pour rendre les modèles.

J'ai cet objet json:

  {
    title: "Foo bar", 
    content: "<p> Html here </p>", 
    footer: "footer content here"
  }

J'ai un modèle de moustache comme:

  <div id="box">
    <div id="title"> {{title}} </div> 
    <div id="content"> {{content}} </div> 
    <div id="footer"> {{footer}} </div> 
  </div>

Mon problème est que le html dans le contenu variable n'est pas rendu mais est simplement imprimé à l'écran.

Je vois (dans la fenêtre source non visible): <p> Html here </p>, où je ne voudrais voir cela que si je consultais la page source.

Comment puis-je résoudre ce problème lorsque, lorsque je passe une chaîne à un modèle de moustache, le code HTML à l'intérieur est rendu? J'appelle mustache.render (templates.all, data); comme mon appel à la moustache.

52
Snow_Mac

De la documentation Moustache :

Toutes les variables sont échappées HTML par défaut. Si vous souhaitez renvoyer du code HTML non échappé, utilisez la triple moustache: {{{name}}}.

Il vous suffit donc d'utiliser par exemple .{{{content}}} dans votre modèle:

  <div id="box">
    <div id="title"> {{title}} </div> 
    <div id="content"> {{{content}}} </div> 
    <div id="footer"> {{footer}} </div> 
  </div>
121
Amy