2011-12-27 13 views
2

ビューモデル内のプロパティにチェックボックスがバインドされています。チェックボックスをオンにすると、ビューモデルのプロパティが変更されます。ビューモデルのプロパティを変更すると、チェックボックスが選択されます。ビューモデルのプロパティがチェックボックスの値を変更したときに通知される

私がしようとしているのは、チェックボックスの値が変更されたとき(ビューモデルが変更されたとき)に通知されます。チェックボックスをチェックすると、私は 'change'イベントをキャッチできますが、ビューモデルを変更するとイベントは発生しません。

私がチェックボックスをスキップするために使用するスクリプトがこのイベントに依存しているため、この変更について通知する必要があります。

私はこれを回避する方法としてカスタムバインディングを見ましたが、私はそこにソリューションが組み込まれていることを望んでいました。

私はノックアウト1.7を使用しています。

おかげ

答えて

4

ユーザーがチェックボックスをティックし、ビューモデルのプロパティがプログラムによって変更された場合、あなたは、観察値にKnockout's .subscribe functionを使用することができるときが通知されるようにしたい場合は、次のためには

var viewModel = { 
    isChecked: ko.observable(false) 
}; 

viewModel.isChecked.subscribe(function(newValue) { 
    // Do stuff here 
}); 
+0

これを行うには私のスキンスクリプトで観測可能なものにアクセスする必要があります:\。 – Megacan

+0

DOMにアクセスできますか?その場合は、ko.dataFor(domElement)を使用してオブザーバブルを取得できます。 –

+0

これは、問題の一部を解決します。ありがとう。 – Megacan

関連する問題