1

バックボーンに使用しているテンプレートとして、HTML に次のコード ブロックがあります。ただし、これを JS ファイルに移動する方法がわからないため、HTML ファイルにインライン JavaScript を含めることはできません。.erb ファイルでそのようなものを使用するときに発生する問題がいくつかあります。javascript の部分を javascript ファイルに移動したいのですが、残念ながら、スクリプトの種類を変更したままで JavaScript の種類に変更する方法がわかりません。テンプレート。

<script type="text/template" id="lesson-template">
    <span id="lesson-title"><%= tracks[0].title %></span>
    <select class="sel">
        <% _.each(tracks, function(track) { %>
            <option value="<%= track.id %>"><%= track.title %></option>
        <% }); %> 
    </select>
    <p id="tracktext"><%=  tracks[0].text %></p>
</script>

助けていただければ幸いです。

4

2 に答える 2

1

アンダースコアが含まれていると仮定すると、それは非常に簡単です。このようなもの:

var template = _.template(
    '<span id="lesson-title"><%= tracks[0].title %></span>' +
    '<select class="sel">' +
        '<% _.each(tracks, function(track) { %>' +
            '<option value="<%= track.id %>"><%= track.title %></option>' +
        '<% }); %>' + 
    '</select>' +
    '<p id="tracktext"><%=  tracks[0].text %></p>'
);

次に、template変数からアクセスするだけです。

于 2013-10-10T06:17:00.163 に答える
0

テンプレートを JavaScript コードに移動すると、多くの欠点があります。見苦しい連結、機能コードと本質的に絡み合ったプレゼンテーション用のコードです。

問題の根本が競合している場合は、次のerbいずれかを実行できます。

  • erbサーバー側を使用しないでください。JS テンプレートを出力するために本当に必要ですか?
  • _.templateアンダーコアの開始タグと終了タグを再定義する

2 番目のオプションを使用する場合、必要な情報はすべて _.templateドキュメントにあります。

于 2013-10-10T08:04:26.273 に答える