1

我正在使用 underscore.js 并且我遇到了 < 和 > in 的问题<%= name %>。它们会自动替换为 < ; 和 > 这导致我的代码不起作用。

我的 index.html:

<div id="underscore">
   <%= name %>
</div>

我的脚本:

var source   = $("#underscore").html();

var compiled = _.template(source);
var html = compiled({name: 'pepe'});
$("#underscore").html(html);

我修复了将这些行添加到我的脚本中的问题(在编译 var 之前)并且工作正常

source = source.replace("&lt;","<");
source = source.replace("&gt;",">");

有没有其他方法可以解决我的问题?

4

1 回答 1

4

通常人们使用<script>具有非 JavaScript“类型”属性的标签来嵌入模板。

<script id=underscore type=text/underscore>
  <%= name %>
</script>

浏览器将完全忽略直到结束</script>标记的所有内容。您仍然可以将其.innerHTML作为<script>.

于 2013-10-31T16:46:01.337 回答