$ scope。$ evalAsync vs $ scope。$ applyAsync

时间:2015-06-11 18:56:13

标签: angularjs dom

$ evalAsync和$ applyAsync有什么区别?我的理解是,当我从指令使用$ evalAsync时,表达式将在浏览器呈现之前进行评估。

举个例子,如果我想滚动到页面上的特定位置但不显示跳转到该位置,我可以使用它滚动到该位置,因为它在浏览器渲染之前触发,这个视觉虫子会消失。

但是,applyAsync的目的是什么?什么时候使用一个而不是另一个好主意?

2 个答案:

答案 0 :(得分:7)

  

$ evalAsync()

将在当前摘要中执行

  

$ applyAsync()

在预定的一个。

如果您需要详细信息: Ben Nadelstack here

答案 1 :(得分:1)

以下是我一直在使用$ applyAsync的内容。基本上,我使用它作为安全的$ apply。当您尝试在摘要中进行摘要时,您知道这个令人讨厌的错误吗?如果使用$ applyAsync,您将获得另一个摘要,但它将在当前摘要周期完成时发生。

$ applyAsync也很酷,因为你可以在下一个摘要中批量发送一堆回调。