2012-06-27 32 views
8

Tôi có JSON như thế này:Moustache bên trong href

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

và HTML như thế này:

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

Khi tôi áp dụng Moustache, tôi nhận được

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

Nhưng những gì tôi cố gắng để có được là

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

Tôi đã thử {{{ something}}}, {{& something}}, dấu nháy đơn, dấu ngoặc kép ... Tôi thậm chí còn đọc tài liệu.

Bạn có thể giúp tôi không?

+0

Dấu ngoặc nhọn ba cũng cần thiết ở đây để tránh thoát ": //" – Evgeny

Trả lời

4

Đảm bảo nguồn mẫu của bạn là văn bản thẳng - không thử và lấy nguồn HTML được phân tích cú pháp làm mẫu của bạn. Trình duyệt sẽ urlencode/thoát các ký tự đó trong href của bạn và kết quả là các số %7Bs%7Ds mà bạn thấy trong mã của mình. Ria mép sẽ không nhận ra điều đó.

Tôi cho rằng không loại bỏ nguồn mà bạn chuyển sang bộ ria mép có thể hoạt động.

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

Cảm ơn! Unescaping thực sự đã giúp. Hóa ra tôi đã sử dụng jQuery để thực hiện một số chuyển đổi với mẫu trước khi đưa nó vào Mustache (tôi đã làm một cái gì đó như thế này: $ ("{{something}}")), đó là lý do tại sao đoạn HTML này bị thoát – Evgeny

9

Tôi nghĩ rằng bạn cần phải tận dụng các & cho thoát kết hợp với xung quanh mẫu của bạn với một mẫu kịch bản:

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

Tìm thấy ví dụ này over here.

Các vấn đề liên quan