2012-06-14 21 views
15

Jak używać literału "{{" w szablonie wąsów?Jak używać literału {{w szablonie wąsów?

Na marginesie, jeśli używam niestandardowych tagów, takich jak <% i %>, czy istnieje sposób napisania "<%"?

Teoretycznie mogę używać różnych tagów, ale mam zbyt dużo kodu napisanego przy użyciu {{ i }}, aby zmienić to wszystko.

Odpowiedz

36

Wystarczy zmienić ograniczniki tymczasowo:

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

Zakładając, że wyprowadzasz HTML, możesz użyć encji HTML, aby tego uniknąć (wąsy nie mają żadnego sposobu na uniknięcie wbudowanego tagu otwierającego).

Aby wydrukować {{, należy wpisać &#123;{.
Aby wypisać numer <%, należy wpisać &lt;%.

+1

A jeśli nie używam HTML? – dbkaplun

+0

@MindVirus Tak jak powiedziałem, Moustache nie ma możliwości ucieczki z wbudowanego znacznika otwierającego. Istnieją jednak problemy. Podobnie jak zmiana separatora, wyprowadzenie symbolu, a następnie zmiana ogranicznika z powrotem. Może istnieć lepsze obejście zależne od tego, co wypiszesz, tak jak w przypadku HTML. – Paulpro

3

Sam możesz łatwo używać {{. Jeśli próbujesz udokumentować coś takiego, jak {{example}}, zawsze możesz przekazać pierwsze dwa wiersze swoich danych.

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

Niektóre prosty rendering:

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

document.write(html);​ 

Wyniki w:

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

Oto full working jsFiddle

+0

Czy można to zrobić bez przekazywania zmiennej? – dbkaplun

+0

Nie można nakazać parserowi, aby szanował wzorzec czasami, ale nie zawsze, dlatego obejścia ze zmiennymi i elementami HTML. – maxbeatty

0

Wystarczy dodać jeden nawias klamrowy,

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

Powiązane problemy