如何在javascript或jquery中编写这个咖啡脚本?

时间:2012-04-13 05:33:15

标签: jquery backbone.js

我正在使用这个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中写这个?

2 个答案:

答案 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方法由下划线提供。