2012-04-13 8 views
0

Ich benutze dieses coffeescript zum Javascript-Konverter http://coffeescript.org/, um durch ein coffeescript Tutorial zu arbeiten (um mein coffeescript und jquery zu verbessern). Allerdings, wenn ich versuche, es mit dem folgenden coffeeskript zu tun, das ursprünglich in einer jst.eco Schablonendatei gefunden wurde, funktioniert es nicht, selbst wenn ich das <% %> Similily lösche, versuchte ich, den Code auf einer Live-Site auszuführen und finde das kompilierte Javascript mit Firebug heraus, aber die einzige Datei, die es mir gezeigt hat, war die jquery-Datei.Wie schreibe ich dieses Kaffee-Skript in Javascript oder Jquery?

<% for entry in @entries.models: %> 
    <li><%= entry.get('name') %></li> 
<% end %> 

Wie würden Sie dies in jquery schreiben?

Antwort

1

Das ist nicht nur Coffeescript, das ist eine Eco-Vorlage, d. H. Eine HTML-Vorlage mit eingebettetem Coffeescript-Code, ähnlich wie etwa JSP oder PHP. Es tut etwas Ähnliches wie

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; 

Sie möchten vielleicht mit einem entsprechenden Templating-Engine betrachten. jQuery selbst anscheinend has one in beta-testing.

+0

Danke, ich legte jede dieser Zeilen in Seite <% %> in einer JST.EJS-Datei und es hat nicht funktioniert. Ich bin nicht sicher, ob ich etwas falsch mache, oder, weniger wahrscheinlich, ist Ihr Code nicht korrekt – Leahcim

+0

Randbemerkung: keine jquery Vorlagen verwenden. Sie werden nicht mehr unterstützt, während das Team im jQueryUI-Projekt grundlegend neu schreibt. http://wiki.jqueryui.com/w/page/37898666/Template –

0

In jQuery sollten Sie in der Lage sein, schreiben:

<% $.each(this.entries.models, function (key, entry) { %> 
    <li><%= entry.get('name') %></li> 
<% }) %> 

in Vanille Javascript

<% this.entries.models.forEach(function (entry) { %> 
    <li><%= entry.get('name') %></li> 
<% }) %> 

Wenn this.entries.models ein Backbone-Sammlung der forEach Methode ist durch Strich versehen ist.

+0

danke, aber welche Art von Datei/Dateierweiterung sollte dieser Code gehen, wenn es im Vorlagenordner in Backbone ist? Es kann nicht in eine Eco-Datei gehen, da die Funktion ein reserviertes Wort ist. – Leahcim

+0

EJS https://github.com/visionmedia/ejs - eine Vorlage-Engine wie Eco aber für Vanille Javascript – rkusa

Verwandte Themen