1

サブスクライブで再帰性をよりクリーンな方法で回避する方法を見つけようとしています。

次のフィドルは、サブスクライブが2回呼び出される方法(observableOneの場合)を示しています。これは、初期状態でobservable(つまり監視サブスクライブ)が必要なために発生します。

「if」条件付き(observableTwo)で回避することもできますが、「if」条件付きではなく、このタスクを実行する関数があるかどうか疑問に思います。cleanNodeを試してみましたが、機能しません。

これはフィドルです:http: //jsfiddle.net/wabe/nLYyf/

呼び出し後にリスニングする必要があるため、オブザーバブルのサブスクライブを解除したくありません。

4

1 に答える 1

1

問題の一部です。設定を設定すると、データバインディングがトリガーされないように見えるため、チェックボックスが間違った状態になる可能性があります。

これを修正するには...observableTwoを設定するのではなく、タイムアウトにします...

setTimeout(function(){ self.observableTwo(''); },0);

再帰通知を抑制する方法については、「公式」な方法は見当たりません。だから、あなたがそれをしている方法、またはあなたがフラグを使うかもしれない他のバリエーション、あるいはあなたのためにそれを分類する一般的なラッパー関数を思い付くかもしれません。

于 2012-07-04T02:14:24.223 に答える