You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSViews渲染含HTML的扁平数组时HTML标签未解析问题

解决JSViews渲染含HTML的字符串数组问题

这问题我太熟悉了!JSViews默认会自动转义所有HTML内容(目的是防范XSS攻击),所以你用{{>#data}}或者{{:#data}}的时候,<b>标签会被转成&lt;b&gt;这种实体字符,自然就只会显示标签文本而不会渲染成加粗效果了。

正确的解决方案:使用{{html}}标签

要让带HTML的字符串被正确渲染,你需要用JSViews提供的{{html}}指令——它会跳过HTML转义步骤,直接把内容当作原生HTML输出。

下面是完整的可运行示例代码:

模板部分

<script id="foodTemplate" type="text/x-jsrender">
  <div class="food-list">
    {{for items}}
      <p>{{html:#data}}</p>
    {{/for}}
  </div>
</script>

JavaScript渲染代码

// 你的数据源
var foodData = { "items": ["<b>Steak</b>", "Cheese"] };

// 编译模板并渲染内容
var template = $.templates("#foodTemplate");
var renderedHtml = template.render(foodData);

// 将渲染结果插入页面容器
$("#container").html(renderedHtml);

这样处理后,<b>Steak</b>就会被解析成加粗的“Steak”,而“Cheese”则正常显示文本。

小提醒

  • 如果是直接输出单个数据项(而非循环数组),写法类似:{{html:items[0]}}
  • 注意:使用{{html}}时要确保数据源是可信的,避免引入XSS安全风险!

内容的提问来源于stack exchange,提问作者austinthetaco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:00:13