1

我正在尝试获取数据绑定和 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>

但是如何将孩子的姓名数据链接回原始对象?

4

2 回答 2

1

你可能想看看knockout.js
它确实使用 jquery 模板和它自己的绑定机制。

于 2011-04-29T06:11:27.490 回答
0

.link() 目前不支持您正在寻找的嵌套数组或对象。您很可能希望展平您的 JSON 对象以利用数据链接:http: //jsfiddle.net/rUrXF/1/

看起来嵌套对象存在一个问题:https ://github.com/jquery/jquery-datalink/issues/24

于 2011-04-29T05:55:46.793 回答