0

私のコードで <script type="text/html" class="template"> </script> は、いくつかのタグを含むdivセクションの周りからタグを削除する<select>と、chosen.jquery.jsスタイルが有効になります。

タグを残すと<script>、選択ドロップダウンを適切に変更する代わりに、ある種のアクションリンクに変更します。

これがjsfiddleです

タグを削除し、テンプレートへのアンダースコアとjqueryの呼び出しを削除すると、ドロップダウンが正しく読み込まれます。

これが両方の方法を示す画像です:

ここに画像の説明を入力してください

アンダースコアのテンプレートを使用しながら、下のオプションと同じように表示したいと思います。これは可能ですか?

4

1 に答える 1

1

と言うと_.template(some_html)、HTMLではなく関数が返されます。

レンプレート _.template(templateString, [data], [settings])

JavaScriptテンプレートを、レンダリング用に評価できる関数にコンパイルします。
[...] 1回限りの書き込みをしている場合は、テンプレート関数を返す代わりに、すぐにレンダリングするために、データ
オブジェクトを2番目のパラメーターとしてテンプレートに 渡すことができます。

そのため、HTMLの塊であるかのようにページに関数を追加しようとしていますが、それはあまりうまく機能しません。また、テンプレートをドキュメントの<head>領域に配置しようとしていたので、それはお勧めできません。

テンプレートをコンパイルしてから、戻ってきた関数を実行してHTMLを取得する必要があります。

var template = _.template(some_html);
var html     = template(); // Or template(data) if you have data.

テンプレートのデータがある場合は、一度に実行できます。

var html = _.template(some_html, data);

デモ: http: //jsfiddle.net/ambiguous/3ezqV/

于 2012-10-17T00:37:23.383 に答える