2

最近、changeTracker / dirtyFlagアプローチを見つけてコードに適用しましたが、すべてが良好でした。とてもきちんとしていて便利です。しかし、今日、私はそれを再び使用しようとしていて、何か奇妙なことが起こっていました。ページを開くとすぐに、somethingHasChangedトリガーが起動していました。

私は見て、検索して、何もしませんでした。トラッカーを設定した後、オブザーバブルに変更を加えていませんでした。この数時間後、私は問題の根本を見つけました:

オブザーバブルの1つが<select>要素にバインドされているため、現在選択されているが設定され<option>ます。

このバインディングを削除すると、トリガーされなくなります。値は(おそらく)読み取られるだけなので、なぜこれが発生するのかわかりません。

これについて何か考えはありますか?

4

1 に答える 1

1

KOがDOM要素から数値を読み取るときに、数値に対してバインドしていて、選択した値が文字列としてビューモデルに書き戻されていると思います。

于 2013-01-21T23:11:26.810 に答える