當(dāng)前位置:首頁(yè) > IT技術(shù) > Web編程 > 正文

jquery.tmpl.js 字符串不轉(zhuǎn)碼,像Razor里面的@html.Raw()一樣輸出
2022-09-06 22:50:35


首先,你要明白jquery.temp.js是做什么的,此處略。

------

1.問(wèn)題的產(chǎn)生

我們通常這樣使用jquery.temp.js

<script id="tmpl0" type="text/x-jquery-tmpl">
<div>${name}</div>
</script>


$("#temp0").tmpl(list).appendTo('#container');
其中
<pre name="code" class="javascript"><pre name="code" class="javascript"> list = [{
name: '111'
}, {
name: '222'
}];


看這篇文章的都懂的。



但是如果有時(shí)候name的值不是普通的字符串,比如就是“<a>點(diǎn)擊我</a>”這樣的字符串,而且你并不想在瀏覽器上顯示“<a>點(diǎn)擊我</a>”,而是想要顯示“點(diǎn)擊我”

(專業(yè)點(diǎn)說(shuō)就是對(duì)這個(gè)字符串不編碼進(jìn)行輸出)

這要怎么辦呢?

------

2.問(wèn)題的解決

其實(shí) jquery.tmpl.js有不止

<pre name="code" class="html"><div>${name}</div>

這一種寫法,還有


<div>{{html name}}</div>



<div>{{= name}}<div>
</pre><p>其中第一種與第三種是等價(jià)的。</p><p>第二種,即</p><pre name="code" class="html"><div>${name}</div>

這種寫法是不會(huì)對(duì)字符串進(jìn)行編碼的,然后就可以實(shí)現(xiàn)我們想要的了。

=====

這是從github上的jquery.tmpl.js項(xiàng)目源碼中的demo中找到的信息。

項(xiàng)目地址:https://github.com/BorisMoore/jquery-tmpl/tree/master/demos

具體demo:jquery-tmpl-masterdemosstep-by-step