我正在使用jsRender在html頁面上呈現我的數據。數據完美呈現。但是,在某些內容項目中,HTML文本(如超鏈接)顯示爲文本。在jQuery模板中,有一種通過{{html}呈現HTML的方法。 jsRender中有沒有類似的東西? 我的代碼如下:jsRender渲染HTML
<p>
{{ =Status}} //need to convert this to HTML so it should appear as hyperlink.
</p>
謝謝。
我正在使用jsRender在html頁面上呈現我的數據。數據完美呈現。但是,在某些內容項目中,HTML文本(如超鏈接)顯示爲文本。在jQuery模板中,有一種通過{{html}呈現HTML的方法。 jsRender中有沒有類似的東西? 我的代碼如下:jsRender渲染HTML
<p>
{{ =Status}} //need to convert this to HTML so it should appear as hyperlink.
</p>
謝謝。
看着jsRender的源代碼,我可以看到該插件將<,>和&字符轉換爲它們的HTML實體。也許你可以嘗試這些線路從jsRender
escapeMapForHtml = {
"&": "&",
"<": "<",
">": ">"
},
改變
escapeMapForHtml = {
},
心靈從外部來源選中插入HTML的安全隱患!
編輯:好的,檢查示例(特別是03_no-encoding.html)帶來了另一種解決方案。因此,繼續前進,並撤消我先前提議的變更,並嘗試使用
{{=Status!}
感嘆號應防止jsRender更改HTML
的JsRender測試候選人現在出(見鮑里斯後,從昨晚http://www.borismoore.com/2012/03/approaching-beta-whats-changing-in_06.html)
我寫了一個快速小提琴來說明如何在這裏呈現HTML:http://jsfiddle.net/johnpapa/NfUGB/
基本上,只要使用{{> yourProperty}}標籤來顯示它的HTML編碼。使用{{:yourProperty}}跳過編碼。
<script id="template" type="text/x-jsrender">
<p>
{{:foo}}
</p>
<ul>
{{for testData}}
<li>{{:name}} - {{:markup}} - {{>markup}}</li>
{{/for}}
</ul>
</script>
<div id="div1"></div>
。
var vm = {
foo: "names",
testData: [
{
name: "John",
markup: "<span style='background: yellow'>John</span>"
},
{
name: "Boris",
markup: "<span style='background: orange'>Boris</span>"
}
]
};
$("#div1").html($("#template").render(vm));
使用{{:Status}}
生成HTML代碼。
它不起作用。它將HTML視爲字符串並放入「」中。例如
「http://www.gmail.com」
– 2012-01-10 12:04:31請參閱我上面最近的編輯... – devnull69 2012-01-10 12:30:49
也許您應該刪除答案中的第一個(非工作)部分? – M4N 2012-01-25 13:25:44