2012-06-27 19 views
8

tengo JSON como esto:bigote interior del href

{ "something": "http://something.com" } 

y HTML así:

<a href="{{something}}">{{something}}</a> 

Cuando aplico bigote, consigo

<a href="%7B%7Bsomething%7D%7D">http://something.com</a> 

Pero lo que soy tratando de obtener es

<a href="http://something.com">http://something.com</a> 

Ya he intentado {{{ something}}}, {{& something}}, comillas simples, comillas dobles ... Incluso leo la documentación.

¿Me puede ayudar?

+0

También se necesitan llaves dobles rizadas aquí para evitar el escape de ": //" – Evgeny

Respuesta

4

Asegúrate de que el origen de tu plantilla sea un texto simple; no intentes y toma la fuente HTML analizada como tu plantilla. Los navegadores urlencode/escape esos caracteres en su href de enlace, y resultan en esos %7Bs y %7Ds que ve en su código. Moustache no reconocerá eso.

Supongo que sin embargo, puede ser útil deshacerse de la fuente que pasas al bigote.

Mustache.render(unescape(source),view) 
+0

¡Gracias! Unescaping en realidad ayudó. Resulta que estaba usando jQuery para hacer algunas transformaciones con la plantilla antes de pasarlo a Moustache (básicamente hice algo como esto: $ ("{{something}}")), es por eso que esta pieza de HTML se escapó – Evgeny

9

creo que es necesario hacer uso de la & para escapar en combinación con rodea a su plantilla con un script de plantilla:

<script type="text/template" id="tmpl"> 
    <a href="{{& something }}">{{ something }}</a> 
</script> 

encontrado este ejemplo over here.