たとえば、2つの単純なオブザーバブルがあります。
val1 = ko.observable("input1");
val2 = ko.observable("input2");
ひとつのように振る舞ってほしいので、どちらかが変わればもう一方も変わります。
一般的なケースでは、観測可能なオブジェクトを 1 つだけ使用して、複数の dom 要素にバインドする方がよいことを私は知っています。しかし、私の場合、これらのオブザーバブルは異なるテンプレートとオブジェクトに存在するため、1 つの変数にすることはできません。
現在、あるオブザーバブルを別のオブザーバブルにサブスクライブし、その逆も同様です。
val1.subscribe(function(v) {
val2(v);
});
val2.subscribe(function(v) {
val1(v);
});
ただし、1 つのオブザーバブルの値を変更すると、2 番目の値が更新されますが、波及効果が発生し、最初の値が無限に更新されます。
無限ループを引き起こすことなく、一方の値を変更するときに他方の値を設定する、2 つの個別のオブザーバブル間の双方向バインディングを設定するにはどうすればよいですか?