2014-04-07 7 views
5

Gibt es eine Möglichkeit, wie ich (ohne die Quellen des Schnurrbartes zu modifizieren) das HTML-Escaping deaktivieren kann? Ich benutze Schnurrbart für andere Dinge und möchte nicht, dass die folgenden Elemente maskiert werden.Schnurrbart: HTML-Escaping global deaktivieren?

var entityMap = { 
    "&": "&", 
    "<": "&lt;", 
    ">": "&gt;", 
    '"': '&quot;', 
    "'": '&#39;', 
    "/": '&#x2F;' 
}; 

eine Vorlage wie foo '{{bar}}' gegeben und eine Ansicht { bar : 1 } wird foo &#39;1&#39 produzieren.

+0

Wie wäre es mit dem Ausführen einer "descaping" -Methode, nachdem die Seite vollständig geladen ist? – Knerd

Antwort

18

Es ist eigentlich ziemlich einfach, mustache bietet die escape Funktion, die überschrieben werden soll. Die folgende Zeile deaktiviert das Maskieren von Schnurrbartvorlagen.

mustache.escape = function (value) 
{ 
    return value; 
}; 
20

Wenn Sie versuchen, nur HTML nicht, einige Saiten entkommen, die Sie gerade tun {{{xx}}} statt {{xx}}

Stand:

http://mustache.github.io/mustache.5.html

Also, wenn Sie eine Zeichenfolge haben, die besteht aus:

Test => Q & A

mit Anrufen:

{{test}} 

würden Sie:

Q &amp; A 

..aber Aufruf mit:

{{{test}}} 

Würden Sie nur geben:

q & a 
+2

Vielen Dank für Ihre Antwort, aber es geht nicht um die Platzhalter. Mein Problem ist, dass es auch die gesamte Vorlage entkommt. – codevour

+0

Wie erregen Sie die Vorlage? Dies funktioniert gut für mich mit einer lokalen Vorlage (innerhalb einer **