jQueryテンプレートは実際には双方向のデータバインディングを実装していませんが、Microsoftが開発した別のjQueryプラグインは実装しています。このScottGuthrieの投稿は、実際にはtmplプラグインとDataLinkingプラグインの両方をカバーしています。「クライアントデータリンクのサポート」まで下にスクロールします。ここで、スコットはデータリンクプラグインがどのように機能するかについて詳しく説明します。
ただし、双方向のデータバインディングの場合、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>