2012-06-14 2 views
15

Как использовать литерал "{{" в шаблоне Усы?Как использовать литерал {{в шаблоне Усы?

На стороне заметки, если я использую пользовательские теги, например <% и %>, есть ли способ написать «<%»?

Теоретически, я мог бы использовать разные теги, но у меня слишком много кода, написанных с использованием {{ и }}, чтобы изменить все это.

ответ

36

Просто измените разделители временно:

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

Предполагая, что вы выводите HTML, вы можете использовать объект HTML, чтобы его избежать (усы не имеют возможности избежать открытия встроенного тега).

Таким образом, для вывода {{ вы бы указали &#123;{.
Для вывода <% вы бы указали &lt;%.

+1

И если я не использую HTML? – dbkaplun

+0

@MindVirus Как я уже сказал, Усы не имеют никакого способа избежать встроенного тега открытия. Однако есть обходные пути. Как изменение разделителя, вывод символа, а затем изменение разделителя. Возможно, будет более сложное решение, зависящее от того, что вы выводите, например, для HTML. – Paulpro

3

Вы вполне можете использовать {{. Если вы пытаетесь задокументировать что-то вроде {{example}}, вы всегда можете передать первые два слова cur с вашими данными.

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

Некоторые простые рендеринга:

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

document.write(html);​ 

Результаты в:

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

Вот full working jsFiddle

+0

Есть ли способ сделать это без передачи переменной? – dbkaplun

+0

Вы не можете сказать парсеру уважать шаблон иногда, но не всегда, поэтому обходные пути с переменными и объектами HTML. – maxbeatty

0

Просто добавьте одну фигурную скобку,

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

Смежные вопросы