2

observableの値の変更に関連するすべての通常の処理(最も重要なのはDOMへの変更)が終了した後、カスタムコードを実行するにはどうすればよいですか?

observableのメソッドをサブスクライブしようとしましたが、関数の実行が早すぎます(DOMはまだ変更されていません)。

4

2 に答える 2

3

テンプレートバインディングには、afterRender関数があります。

ページの約半分の注3を参照してください: http: //knockoutjs.com/documentation/template-binding.html

于 2012-06-27T13:19:40.060 に答える
3

ノックアウト「スロットル」エクステンダーと一緒に計算されたオブザーバブルを使用します。

基本的な考え方は次のとおりです。

  1. 追跡する実際のオブザーバブルに依存する計算されたオブザーバブルを作成します。
  2. ノックアウトスロットルエクステンダーを使用して、計算されたオブザーバブルの更新を遅らせます。計算されたオブザーバブルが再計算される前にDOMが更新を終了するには、0ミリ秒の遅延でも十分です。
  3. 抑制され、計算されたobservableをサブスクライブします。

上記のノックアウトスロットルエクステンダーのドキュメントページの「例2:ユーザーが入力を停止したときに何かを行う」では、この手法を使用します。

于 2012-06-27T16:55:32.087 に答える