Javascript 在我的jQuery/js中包含下划线模板
我可能已经阅读了所有关于下划线和模板的帖子,但似乎无法实现一些简单的功能。我无法在html中内联Javascript 在我的jQuery/js中包含下划线模板,javascript,templates,underscore.js,Javascript,Templates,Underscore.js,我可能已经阅读了所有关于下划线和模板的帖子,但似乎无法实现一些简单的功能。我无法在html中内联标记中的模板。我只想用从API获取数据的js脚本声明模板 我想说: <script type="text/template" id="eventView"> <div class="table-tour"> <% _.each(collection, function( model, id ) { %> <div cla
标记中的模板。我只想用从API获取数据的js脚本声明模板
我想说:
<script type="text/template" id="eventView">
<div class="table-tour">
<% _.each(collection, function( model, id ) { %>
<div class="row">
<div class="cell date"><% var monthNames = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
var str = model.datetime;
var dateArr = str.substring(0, str.indexOf("T")).split("-");
var month = parseInt(dateArr[1],10);
var day = parseInt(dateArr[2],10);
print(monthNames[month-1] + " " + day); %></div>
<div class="cell location"><%= model.formatted_location %></div>
<div class="cell venue"><%= model.venue.name %></div>
<div class="cell actions"><% if (model.ticket_status == "available") { %>
<span><a href="<%= model.ticket_url %>" target="_blank">Tickets</a></span> <% } %>
</div>
</div>
<% }); %>
</div>
</script>
在这里:
// Display all dates:
var content;
if (data.length > 0)
content = _.template( $( "script#eventView" ).html(), { "collection": data } );
else
{
var notifyUrl = "http://www.bandsintown.com/" + artistName;
content = "<p class='notify'>No " + mode + " dates. <a href='" + notifyUrl + "' target='_blank'>Notify me when " + artistName + " comes to my area.</a></p>";
}
$("#tour-dates").html(content);
//显示所有日期:
var含量;
如果(data.length>0)
content=..template($(“脚本#事件视图”).html(),{“集合”:数据});
其他的
{
var notifyUrl=”http://www.bandsintown.com/“+艺人姓名;
content=“无“+模式+”日期。
”;
}
$(“#巡演日期”).html(内容);
我一直试图将其添加到:
.template($(“script#eventView”).html(),{“collection”:data})代码>
但是失败了
想知道是否有人有小费
谢谢。您的意思是在html中存储ejs(或某些自定义)模板。你不能直接这样做。当浏览器试图解析时,它将无法识别其格式,因为它不支持ejs(或任何自定义模板)格式。可以将其转义值存储在javascript变量或数据属性中。但出于可读性考虑,我不建议这样做
您可能应该在javascript中调用ajax来获取该模板。若您希望预取该模板,那个么只需在脚本标记中进行ajax调用,以获取该模板并将其存储在javascript变量中的某个位置
如果模板语言是ejs,您可以使用插件以方便使用。哪个版本的下划线?“失败”具体是什么意思?它是v1.4.4。很抱歉,“失败”,如中所示,我无法在js if语句中重新创建模板。您希望该模板以JavaScript字符串而不是
?格式。我也在探索一个get()
方法,但如果我能在这里声明我的模板,那将是理想的:.template($(((“脚本”#事件视图”).html(),{“集合”:data})那么,是什么阻止你说var s=''…'.\。模板…
?或者使用$.get
并在其回调中处理模板?