我正在尝试获取数据绑定和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>
然而,我遇到问题的是我希望item包含一个数组,并且渲染比使用{{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>
但是,如何将孩子名称数据链接回原始对象?
答案 0 :(得分:1)
您可能需要查看knockout.js
它确实使用了jquery模板和它自己的绑定机制。
答案 1 :(得分:0)
.link()目前不支持您正在寻找的嵌套数组或对象。您很可能希望展平JSON对象以利用数据链接:http://jsfiddle.net/rUrXF/1/
看起来嵌套对象存在问题:https://github.com/jquery/jquery-datalink/issues/24