我的HTML中有以下代码块作为我用于Backbone的模板。但是,我不确定如何将其移动到JS文件中,因此我的HTML文件中不会有内联javascript。我在.erb文件中使用这些问题时遇到了一些问题,我想将javascript部分移动到javascript文件中,不幸的是我不知道如何将脚本类型更改为javascript类型,同时保持我的模板。
<script type="text/template" id="lesson-template">
<span id="lesson-title"><%= tracks[0].title %></span>
<select class="sel">
<% _.each(tracks, function(track) { %>
<option value="<%= track.id %>"><%= track.title %></option>
<% }); %>
</select>
<p id="tracktext"><%= tracks[0].text %></p>
</script>
非常感谢帮助!
答案 0 :(得分:1)
假设你已经包含下划线,那很简单。像这样:
var template = _.template(
'<span id="lesson-title"><%= tracks[0].title %></span>' +
'<select class="sel">' +
'<% _.each(tracks, function(track) { %>' +
'<option value="<%= track.id %>"><%= track.title %></option>' +
'<% }); %>' +
'</select>' +
'<p id="tracktext"><%= tracks[0].text %></p>'
);
然后,只需从template
变量访问它。
答案 1 :(得分:0)
将模板移动到javascript代码有许多缺点:丑陋的连接,代码基本上与功能代码交织在一起。
如果问题的根源与erb
冲突,您可以:
erb
服务器端。你真的需要它来输出你的JS模板吗?_.template
开始和结束标记如果您选择第二个选项,则_.template documentation中会提供所有必要信息。