我正在使用这个coffeescript到javascript转换器http://coffeescript.org/来完成coffeescript教程(以改善我的coffeescript和jquery)。但是,当我尝试使用最初在jst.eco模板文件中找到的以下coffeescript时,它不起作用,即使我删除<% %>
类似,我试图运行代码一个实时网站,并使用Firebug找出已编译的JavaScript,但它显示的唯一文件是jquery文件。
<% for entry in @entries.models: %>
<li><%= entry.get('name') %></li>
<% end %>
你会如何在jquery中写这个?
答案 0 :(得分:1)
这不仅仅是Coffeescript,这是一个eco模板,即带有嵌入式coffeescript代码的HTML模板,类似于JSP或PHP。它做了与
类似的事情var entry, x, _i, _len, _ref;
x = [];
_ref = this.entries.models;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
entry = _ref[_i];
x.push('<li>');
x.push(entry.get('name'));
x.push('</li>');
}
return x;
您可能希望使用等效的模板引擎。 jQuery本身显然是has one in beta-testing。
答案 1 :(得分:0)
在jQuery中你应该写:
<% $.each(this.entries.models, function (key, entry) { %>
<li><%= entry.get('name') %></li>
<% }) %>
in vanilla Javascript
<% this.entries.models.forEach(function (entry) { %>
<li><%= entry.get('name') %></li>
<% }) %>
如果this.entries.models
是Backbone Collection,则forEach方法由下划线提供。