私は、データ バインディングと tmpls (jquery プラグインをうまく連携させるため) を取得しようとしています。したがって、テンプレートを使用してデータをレンダリングし、データ バインディングを使用してそれをオブジェクトにフックしたいと考えています。例えば:
var items = [{ Name: 'Barak Obama', Phone: '555-1212' },
{ Name: 'George Bush', Phone: '444-2222'}];
function addItems() {
$("MyList").html("");
for (var index in items) {
$("#ListTmpl").tmpl(items[index]).link(items[index]).appendTo("#MyList");
}
};
次のようなテンプレートを使用します。
<script id="ListTmpl" type="text/x-jquery-tmpl">
<li>
<input id="Name" value="${Name}" />
<input id="Phone" value="${Phone}" />
</li>
</script>
ただし、問題があるのは、アイテムに配列を含めて、{{each}} よりもレンダリングすることです。
var items = [{ Name: 'Barak Obama', Phone: '555-1212',
kids: [{Name: "Malia"}, {Name: "Sasha"}] },
{ Name: 'George Bush', Phone: '444-2222'},
kids: [{Name: "Barbara"}, {Name: "Jenna"}] }];
そして、このようなテンプレート:
<script id="ListTmpl" type="text/x-jquery-tmpl">
<li>
<input id="Name" value="${Name}" />
<input id="Phone" value="${Phone}" />
<ul>
{{each kids}}
<li> ${Name}
{{/each}}
</ul>
しかし、子供の名前のデータを元のオブジェクトにリンクするにはどうすればよいでしょうか?