これらの 2 つのブログ投稿に触発された後、jQuery テンプレートを試してみたかった
- http://encosia.com/2010/11/10/composition-with-jquery-templates-why-and-how/
- http://encosia.com/2010/10/05/using-external-templates-with-jquery-templates/
まあ、それは私にとってはうまくいきません。ページ自体にテンプレート コードがある場合は正常に動作しますが、リモートでの読み込みはうまくいきません。テンプレートは正常に取得されているようです。ここで何が問題なのですか?
外部テンプレート:
<script id="contactsTemplate" type="text/x-jquery-tmpl">
<table class="contacts">
<thead><tr><td class="ui-helper-hidden">Id</td><td>Name</td><td>City</td><td>State</td></tr></thead>
<tbody>
{{each contact}}
{{tmpl($value) '#contactTemplate'}}
{{/each}}
</tbody>
</table>
</script>
<script id="contactTemplate" type="text/x-jquery-tmpl">
<tr><td class="ui-helper-hidden">${id}</td><td>${name}</td><td>${city}</td><td>${state}</td></tr>
</script>
私のページでは、このコードを使用してテンプレートを取得してロードしています。
var contacts = {
contact: [
{ id: 1, name: "John Green", city: "Orange Beach", state: "AL" },
{ id: 2, name: "Sam Thompson", city: "Pensacola", state: "FL" },
{ id: 3, name: "Mary Stein", city: "Mobile", state: "AL" }
]
};
$("#ShowDataRemote").button().click(function() {
$.get('templates/Contact.htm', function(template) {
alert(template);
$.tmpl(template, contacts).appendTo("body");
alert("async done");
});
});
アップデート:
Encosia に関する新しいブログ投稿では、この質問と回答について説明しています...
http://encosia.com/2010/12/02/jquery-templates-composite-rendering-and-remote-loading/