2011-06-18 12 views
1

私は4つの入力フィールドを持つフォームを持っています。 UIから更新されたときにres(3)を更新する必要があります。更新されたものは、4つのうちのどれかである可能性があります。ノックアウト観測所を購読する必要がありますか?

myViewModel.four.subscribe(function(newValue) { 

//update one here 
//update two here 
//update three here 

}); 

など.....

myViewModel.one.subscribe(function(newValue) { 


//update two here 
//update three here 
//update four here 

}); 

が、どのように私は、メソッド内のものをアップデートする必要がありますか?私にはStack Overflowのように見えます...

+0

他のフィールドは同じ値で更新されますか? – Dan

答えて

3

ノックアウト1.2.1では、観測値がまったく同じ値で更新された場合、更新は送信されません。したがって、それぞれの値が同じ値で更新されている場合は、その場合は大丈夫です。

これまでは、再帰的ループの更新を避ける最良の方法は、オブザーバブルを実際に更新する必要があるかどうかを確認することでした。これにより、一連の更新が削減されます。だから、

myViewModel.one.subscribe(function(newValue) { 

    if (two() !== "the right value") { 
     two("the right value"); 
    } 
    //etc... 
}); 

そうでない場合は、あなたのシナリオに多くがある場合、その探求することができ、書き込み可能なdependentObservablesと他のオプションがあるかもしれません。双方向の関係以上のものが得られる場合は、通常は手動のサブスクリプションが最適です。

関連する問題