下划线模板

时间:2014-03-07 15:25:09

标签: javascript templates backbone.js

我正在使用下划线+表达来呈现网页,这是一个模板示例:

<!doctype>
<html>
<head>
    <meta charset="utf-8">
    <title><%= title %></title>
</head>
<body>
    <div class="description"><%= description %></div>
</body>
</html>

到目前为止一切都很好,但是我想在页面中使用以下标记:

<script type="text/template">
    <div class="foo"><%= bar %></div>
</script>

如果我将使用它,那么服务器端下划线将尝试解析它,这不是我的意图,我也想在客户端使用_.template。

有什么办法可以忽略模板的某些部分吗?我浏览了文档,但我没有找到任何内容。像这样的东西真的很有用:

<%! %>

示例:

<%!
<script type="text/template">
    <%= text %>
</script>
%>

我知道我可以编辑部分页面,但是有更好的解决方案吗?

1 个答案:

答案 0 :(得分:2)

您可以将客户端模板设置设置为使用不同的插值设置,这样它们就不会与服务器端设置冲突。见http://underscorejs.org/#template

_.templateSettings = {
  interpolate: /<%!(.+?)%>/g
};

注意你可能不得不逃避一些角色。