したがって、この質問は私の前の質問の続きですどのような条件の下でノックアウト ネイティブ テンプレートが再レンダリングされますか
調査の結果、テンプレートがafterRender
関数を定義し、そのafterRender
関数がパーツ モデルを参照している場合、モデルのその部分が後で変更されると、afterRender
関数が再度呼び出されるようです。
この動作は、ノックアウトが依存するモデルの部分を追跡し、依存する値の 1 つが変更されるたびに を再実行するcomputedObservables
(別名) に似ているようです。dependentObservables
computedObservables
これを実証するために、私は jsFiddle を作成しました: http://jsfiddle.net/unklefolk/nczCt/1/
予想どおり、ビューがレンダリングされるときに afterRender 関数が呼び出されます。ただし、チェックボックスをクリックすると、afterRender 関数が再実行されます。viewModel.selectedPet().pet().IsHappy()
これは私には意味がありません。だから私の質問は:
afterRender
関数が再実行されているのはバグですか?afterRender
関数が 1 回だけ実行されるようにするにはどうすればよいですか?
前もって感謝します。