更新:この問題をさらに 1 日掘り下げた結果、現在の jQuery テンプレート ライブラリにはこれを行う方法がないことがわかりました。この記事で は、適切なアプローチについて説明します。
これを行うことに関する追加の考えを聞きたいと思います。上記の記事では、返されたテンプレートの文字列を DOM に挿入する必要があります。これからDOMを除外するのが理想的であり、ブラウザのオーバーヘッドが少なくなるようです。使用されない可能性のある複数の複合テンプレートを含む大きなページを想像してください。ただし、テンプレートが script タグでラップされているためか、テンプレートごとに DOM 項目が 1 つしかないのでしょうか? さあ、いくつかの考えを聞いてみましょう...
jQuery template libsを使用して、複数の関連する比較的小さなテンプレートを組み合わせる最良の方法は何ですか? <script>
個々のテンプレートごとに 1 つのタグが必要ですか? これらのテンプレートを AJAX 経由で動的にプルする場合はどうでしょうか? これらのテンプレートを何らかの方法で組み合わせることができますか?
次の点を考慮してください。
<script id="movieTemplate" type="text/x-jquery-tmpl">
{{tmpl "#titleTemplate"}}
<tr class="detail"><td>Director: ${Director}</td></tr>
</script>
<script id="titleTemplate" type="text/x-jquery-tmpl">
<tr class="title"><td>${Name}</td></tr>
</script>
これら 2 つのテンプレートは非常に密接に関連しているため (一方が他方に依存しているため)、これらを 1 つの AJAX 呼び出しに統合し、両方を一度に取得することは理にかなっています。いくつかのアイデアがありますが、これを行うための一般的な/最良の方法があるかどうか知りたいですか? 現在、私は HTML のチャンクを取り込み、.find() を実行して、テンプレート用の HTML の特定のピースを取得します... 例:
var templatePackage = fancyAjaxCalltoGetTemplates();
「templatePackage」は次のようになります。
<div id="templatePkg">
<div id="movieTemplate">
{{tmpl "#titleTemplate"}}
<tr class="detail"><td>Director: ${Director}</td></tr>
</div>
<div id="titleTemplate">
<tr class="title"><td>${Name}</td></tr>
</div>
</div>
次に、次のことができます。
var titleTemplate = jQuery.template('titleTemplate', $(templatePackage).find('#titleTemplate') );
と
var movieTemplate = jQuery.template('movieTemplate', $(templatePackage).find('#movieTemplate') );
...あなたの考えを教えてください...どうしますか?