私は大きなviewModelを持っています。モデル全体を投稿することなく、ステータスの更新( "未読"/"未読")をサーバーに投稿したいと思います。テンプレートでカスタムバインディングの使い方は?
ko.bindingHandlers.statusUpdater = {
update: function(element, valueAccessor) {
console.log(element);
}
};
:
私がやったことはそうのようなカスタムバインディングを作成することです
<div data-bind='template: { name: "contactsListTemplate", data: viewModel.conversations.conversationlist }'> </div>
<script type="text/html" id="contactsListTemplate">
<table>
<tbody>
{{each(i, conversation) $data}}
<tr>
<td>
<input type="checkbox" data-bind="checked: read, statusUpdater: conversation_id" />
</td>
</tr>
{{/each}}
</tbody>
</table>
</script>
カスタムバインディングのために、私はアップデートで唯一の興味、どのようなI私ができることは、KnockoutJSのアップデートを検出し、アイテムIDと新しい統計情報を取得してサーバーにポストするために、更新されたアイテムを判断することです。
何が起こっているのは、customBindingがconsole.log
という単一のチェックボックスの変更ですべてのチェックボックスを有効にすることです。これはチェックボックスを変更し、3つすべてのチェックボックスがko.bindingHandlers.statusUpdater
を介してコンソールにログしていることを意味します。
私はデータバインディングにクリックイベントを追加することを考えましたが、カスタムバインディングと同じようには見えませんでした。おそらく私がカスタムバインディングを使ってやろうとしているのは、彼らのためのものではないでしょうか?
思考?
このためおかげでなく、どのようなビューは、データバインドの内側のようになりますが=「」私は、これがものをknockoutjsにまだドットを接続するように見えることはできません。ありがとう – AnApprentice