Шаблон jQuery на самом деле не реализует двустороннее связывание данных, но другой плагин, разработанный Microsoft, делает это.Это сообщение Скотта Гатри фактически охватывает как плагин tmpl, так и плагин Data Linking.Прокрутите вниз до «Поддержка связывания данных клиента», где Скотт подробно расскажет о том, как работает плагин связывания данных.
Однако для двухстороннего связывания данных я нахожу расширение knockoutjs быть намного лучше и чище.Декларативный синтаксис обеспечивает чистоту разметки, а пользовательские переопределения привязки данных допускают множество приложений.Наконец, подключаемый модуль mapping отлично подходит для обработки 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>