首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsRender呈现HTML

jsRender呈现HTML
EN

Stack Overflow用户
提问于 2012-01-10 18:38:03
回答 4查看 11.1K关注 0票数 5

我正在使用jsRender在html页面上呈现我的数据。数据呈现得非常完美。但是,在某些内容项中,HTML文本(如超链接)显示为文本。在jquery模板中,有一种通过{{ HTML .在jsRender中有没有类似的东西?我的代码如下:

代码语言:javascript
复制
<p>
{{ =Status}}   //need to convert this to HTML so it should appear as hyperlink.
</p> 

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2012-03-07 22:44:54

JsRender测试版候选人现在已经出来了(参见昨晚http://www.borismoore.com/2012/03/approaching-beta-whats-changing-in_06.html上的博里斯的帖子)

我在这里写了一个快速小提琴来展示如何呈现超文本标记语言:http://jsfiddle.net/johnpapa/NfUGB/

基本上,只需使用{{>yourProperty}}标记将其呈现为HTML编码。使用{{:yourProperty}}跳过编码。

代码语言:javascript
复制
<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>

代码语言:javascript
复制
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));​
​
票数 9
EN

Stack Overflow用户

发布于 2012-08-14 02:39:40

使用{{:Status}}生成HTML代码。

票数 6
EN

Stack Overflow用户

发布于 2012-01-10 19:53:38

查看jsRender的源代码,我可以看到该插件将<、>和&字符转换为它们的HTML实体。也许您可以尝试在jsRender中更改这些行

代码语言:javascript
复制
escapeMapForHtml = {
    "&": "&amp;",
    "<": "&lt;",
    ">": "&gt;"
},

代码语言:javascript
复制
escapeMapForHtml = {
},

注意插入来自外部来源的未经检查的HTML的安全风险!

编辑: OK,检查示例(特别是03_no-encoding.html)带来了另一种解决方案。因此,继续撤消我之前提出的更改,并尝试使用

代码语言:javascript
复制
{{=Status!}

感叹号应防止jsRender更改HTML

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8801887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档