jQuery 模板实际上并没有实现双向数据绑定,但是另一个 Microsoft 开发的 jQuery 插件可以实现。这篇Scott Guthrie 的帖子实际上涵盖了 tmpl 插件和 Data Linking 插件。向下滚动到“支持客户端数据链接”,Scott 详细介绍了数据链接插件的工作原理。
但是,对于双向数据绑定,我发现knockoutjs扩展更好更简洁。声明式语法使标记保持干净,并且自定义数据绑定覆盖允许大量应用程序。最后,映射插件非常适合将来自服务器的 JSON 处理为绑定。最后,knockoutjs 也有基于 tmpl 插件的绑定。
祝你的问题好运。
编辑:更新的代码示例
所需手稿:
<script src="/Scripts/jquery-1.5.0.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.tmpl.js" type="text/javascript"></script>
<script src="/Scripts/knockout.js" type="text/javascript"></script>
<script src="/Scripts/knockout.mapping.js" type="text/javascript"></script>
然后是肉和土豆
<!-- div for loading the template -->
<div data-bind='template: { name: "tmplTest", foreach: viewModel.list }'>
</div>
<!-- your template -->
<script type='text/html' id='tmplTest'>
<div>
<span data-bind='text: textvalue, uniqueName: true'></span>
<input data-bind='value: textvalue, uniqueName: true, valueUpdate:"afterkeydown"'/>
</div>
</script>
<script type='text/javascript'>
var viewModel = ko.mapping.fromJS(
{
list:[ { textvalue: "text1" },
{ textvalue: "text2"} ]
});
$(function() {
ko.applyBindings(viewModel);
});
</script>