0

有人能告诉我“<%%”“<%”之间的区别吗

<%%= hello %>

<%= hello %>

我在谷歌搜索中找不到正确的答案。

任何解释都会有所帮助:)

**Index.html**

<div id="container">Loading...</div>
<script type="script/template" id="hello_sen">
<%= hello %>
</script>

**Backbone View**

class Bckbone.Views.EntriesIndex extends Backbone.View

initialize: ->
    @template = _.template($("#hello_sen").html())

render: ->
    datas = {hello: "Senthil"}
    $(@el).html(@template(datas))
    this
4

3 回答 3

1

您在上面发布的屏幕截图中收到错误,因为您在文件中使用erb样式下划线模板(默认)erb

<%里面的代码%>被解析为 Ruby 代码。

您应该使用备用插值字符串,如此所述。

于 2012-12-23T20:27:34.043 回答
0

Backbone.js 依赖 underscore.js 进行模板化。<% 是下划线的约定。<%% 转义 Rails 的 ERB 标签。您可以更改下划线的设置:

 _.templateSettings = {
    interpolate: /\{\{\=(.+?)\}\}/g,
    evaluate: /\{\{(.+?)\}\}/g
};

或者使用 <%% 逐行转义。转义仍然以 %> 结束

更多信息:带有 Underscore.js 模板的 Rails

于 2013-10-01T06:27:11.167 回答
0

我首选的解决方案:将模板移动到部分,并且不要在文件名中包含 .html 之后的 .erb。然后 rails 不会解析该文件中的 ERB。

于 2016-11-01T18:56:25.617 回答