2012-06-14 2 views
15

Comment utiliser un littéral "{{" dans un modèle Moustache? Sur une note de côté, si j'utilise des balises personnalisées, comme <% et %>, est-il possible d'écrire "<%"?Comment utiliser un littéral {{dans un modèle Moustache?

Théoriquement, je pourrais utiliser différentes balises, mais j'ai trop de code écrit en utilisant {{ et }} pour tout changer.

Répondre

36

il suffit de changer les délimiteurs temporairement:

{{=<% %>=}} 
{{Look at the curlies!}} 
<%={{ }}=%> 
2

En supposant que vous publiez du code HTML, vous pouvez utiliser une entité HTML pour l'éviter (moustache n'a aucun moyen d'échapper le tag d'ouverture intégré). Pour écrire {{, vous devez écrire &#123;{. Pour écrire <%, vous devez écrire &lt;%.

+1

Et si je ne suis pas en HTML? – dbkaplun

+0

@MindVirus Comme je l'ai dit, Moustache n'a aucun moyen d'échapper à la balise d'ouverture intégrée. Il existe cependant des solutions de contournement. Comme changer votre délimiteur, sortir le symbole, puis changer le délimiteur. Il peut y avoir une meilleure solution de contournement en fonction de ce que vous produisez également, comme pour le HTML. – Paulpro

3

Vous pouvez utiliser {{ par lui-même assez facilement. Si vous essayez de documenter quelque chose comme {{example}} vous pouvez toujours passer les deux premiers mensonges avec vos données.

orphaned curlies are easy {{ <br> 
{{curly}}example}} curlies are harder 

Quelques simples rendu:

var data = { 'curly' : '{{'}, 
    tpl = $('#curly').html(), 
    html = Mustache.to_html(tpl, data); 

document.write(html);​ 

Résultats dans:

orphaned curlies are easy {{ 
{{example}} curlies are harder 

Voici le full working jsFiddle

+0

Existe-t-il un moyen de le faire sans passer une variable? – dbkaplun

+0

Vous ne pouvez pas dire à un analyseur de respecter un modèle parfois, mais pas toujours d'où les solutions de contournement avec des variables et des entités HTML. – maxbeatty

0

Il suffit d'ajouter une accolade,

someTest = "<example>", {{someTest}} -> "&lt;example&gt;" {{{someTest}}} -> "<example>"

Questions connexes