Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mustache inside of href

I have JSON like this:

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

and HTML like this:

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

When I apply Mustache, I get

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

But what I am trying to get is

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

I already tried {{{ something}}}, {{& something}}, single quotes, double quotes... I even read documentation.

Can you help me?

like image 915
Evgeny Avatar asked Jun 27 '12 01:06

Evgeny


2 Answers

I think you need to make use of the & for escaping in combination with surrounding your template with a template script:

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

Found this example over here.

like image 130
Cᴏʀʏ Avatar answered Oct 29 '22 23:10

Cᴏʀʏ


Make sure your template source is straight text - don't try and grab parsed HTML source as your template. Browsers will urlencode/escape those characters in your link href, and result in those %7Bs and %7Ds you see in your code. Mustache won't recognize that.

I suppose unescaping the source you pass to mustache might work, though.

Mustache.render(unescape(source),view)
like image 42
Sean Johnson Avatar answered Oct 29 '22 22:10

Sean Johnson