2012-04-13 9 views
0

私はこのcoffeescriptをjavascriptのコンバータhttp://coffeescript.org/に使用しています。私のcoffeescriptとjqueryの両方を改善するために、coffeescriptのチュートリアルで作業しています。しかし、元々jst.ecoテンプレートファイルで見つかった次のcoffeescriptで処理しようとすると、<% %>を削除しても動作しません。同様に、ライブサイトでコードを実行しようとしました。 Firebugを使ってコンパイルされたjavascriptを見つけてください。しかし、私に示した唯一のファイルはjqueryファイルでした。このコーヒースクリプトをjavascriptまたはjqueryで書くにはどうすればいいですか?

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

これをjqueryでどのように記述しますか?

答えて

1

これは、エコテンプレートであるCoffeescriptだけではなく、たとえば、JSPやPHPに類似した埋め込み型のcoffeescriptコードを持つHTMLテンプレートです。

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です。

+0

ありがとうございました。私はこれらの行をそれぞれ<% %>のjst.ejsファイルに置きましたが、動作しませんでした。私は何か間違っている、または、おそらく、あなたのコードが正しくないかわからない – Leahcim

+0

サイドノート:jqueryテンプレートを使用しないでください。彼らはもはやサポートされていませんが、チームはjQueryUIプロジェクトで大規模な書き直しを行います。 http://wiki.jqueryui.com/w/page/37898666/Template –

0

jQueryのでは、あなたが書くことができる必要があります:

​​

バニラJavaScriptで

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

this.entries.modelsは、コレクションのforEachメソッドは、アンダースコアで提供されるバックボーンがある場合。

+0

このコードはBackboneのテンプレートフォルダにある場合、どのタイプのファイル/ファイル拡張子にする必要がありますか?関数は予約語なので、エコファイルには入りません。 – Leahcim

+0

EJS https://github.com/visionmedia/ejs - ecoのようなテンプレートエンジンですが、vanilla javascript – rkusa

関連する問題