有没有办法推迟或延迟消化不良发生?
我有一些改变,我想对一个模型,但我不想要消化,直到模型的所有更改完成。模型中的某些对象具有观察者更新模型上的其他对象以进行更改。
理想的我想
>停止$ digest
>对模型进行所有更改
>启动$ digest
$ digest将找到所有脏物,并发射观察者。
另一个解决方法是,而不是停止$ digest我可以
>删除观察者
>对模型进行所有更改(消息仍然运行)
>添加被删除的观察者
在添加观察者之后,我需要运行观察器方法来确保模型处于正确的状态。
我只觉得第二个选择似乎是一个黑客。
想法?
这不是一个黑客。它是一个很好的问题,因为大量数据集可以导致$ digest循环运行非常缓慢,当用户快速输入文本或阻止backspace。你肯定可以做
performance tweaks,就像你的$ watch和$ filter函数一样,但有时它更好的想法是使用
debounce function延迟$ digest循环。