19
ダイジェストを延期するか、遅らせる方法はありますか?
私はモデルに加えたい変更がたくさんありますが、モデルへのすべての変更が行われるまではダイジェストを起動したくありません。モデル上のオブジェクトの中には、変更するモデル上の他のオブジェクトを更新するウォッチャーがあります。
理想的には私は$モデルに対するすべての変更
ダイジェストください
- したいのですがウォッチャーを撃ってください。
これに対する別の解決策ではなく、
- が削除されたウォッチャーを追加します(まだ実行さダイジェスト)私は
- モデルに対するすべての変更を行いウォッチャーを削除することができダイジェスト$停止するのにあります
ウォッチャを追加した後、モデルが正しい状態になっていることを確認するためにウォッチャメソッドを実行する必要があります。
2番目のオプションがハックのように思えるだけです。
アイデア??
"$ digestはすべての汚れたオブジェクトを見つけ、ウォッチャーを起動します。" - 解決策は$ watchを設定して変更を適切に 'if(newVal ...){// do something'を処理することです。あなたのアーキテクチャーが良ければ、 '$ digest'を止めたくないでしょう。それはあなたの友人です! – m59
これは有効な質問だと思います。 $ scope変数の値を変更するインスタンスがあり、更新されたバージョンは表示されません。 $ scope。$ apply()と言うと、すでにダイジェストが進行中であると不平を言います。 –
ウォッチャーを停止およびクリアするためのサンプルコードを以下に示します。 - https://stackoverflow.com/questions/38381808/how-to-stop-digest-cycle-manually-in-angularjs – Plankton