jquery.tmpl.js 字符串不转码,像Razor里面的@html.Raw()一样输出
2022-09-06 22:50:35


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

------

1.问题的产生

我们通常这样使用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'
}];


看这篇文章的都懂的。



但是如果有时候name的值不是普通的字符串,比如就是“<a>点击我</a>”这样的字符串,而且你并不想在浏览器上显示“<a>点击我</a>”,而是想要显示“点击我”

(专业点说就是对这个字符串不编码进行输出)

这要怎么办呢?

------

2.问题的解决

其实 jquery.tmpl.js有不止

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

这一种写法,还有


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



<div>{{= name}}<div>
</pre><p>其中第一种与第三种是等价的。</p><p>第二种,即</p><pre name="code" class="html"><div>${name}</div>

这种写法是不会对字符串进行编码的,然后就可以实现我们想要的了。

=====

这是从github上的jquery.tmpl.js项目源码中的demo中找到的信息。

项目地址:https://github.com/BorisMoore/jquery-tmpl/tree/master/demos

具体demo:jquery-tmpl-masterdemosstep-by-step_tmpl-read-only2_html-tag.html



本文摘自 :https://blog.51cto.com/u


更多科技新闻 ......